summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-08-08 03:01:09 +0000
committerNorbert Preining <norbert@preining.info>2020-08-08 03:01:09 +0000
commit1c9455caf30309c8b8ba69afdc5a16a83d9f9a58 (patch)
tree0bc3971e599005a7420c53782539e789de57b40d /macros
parent3710c23789342d9d88783cbe9ad23eb5263a7c33 (diff)
CTAN sync 202008080301
Diffstat (limited to 'macros')
-rw-r--r--macros/context/contrib/context-letter/VERSION2
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkvi19
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkvi4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkvi4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-03.mkvi12
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-06.mkvi4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkii6
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkiv6
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkii6
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkiv6
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkii4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-blue.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-green.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-grey.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-orange.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-red.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-blue.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-green.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-grey.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-orange.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-red.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic.mkiv4
-rw-r--r--macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-default.mkiv4
-rw-r--r--macros/latex/contrib/acroflex/README.md30
-rw-r--r--macros/latex/contrib/acroflex/acroflex.cfg10
-rw-r--r--macros/latex/contrib/acroflex/acroflex.dtx1951
-rw-r--r--macros/latex/contrib/acroflex/acroflex.ins60
-rw-r--r--macros/latex/contrib/acroflex/afcustom_de.def79
-rw-r--r--macros/latex/contrib/acroflex/afcustom_us.def87
-rw-r--r--macros/latex/contrib/acroflex/doc/acroflex_man.pdfbin115222 -> 0 bytes
-rw-r--r--macros/latex/contrib/acroflex/doc/acroflex_man.tex1073
-rw-r--r--macros/latex/contrib/acroflex/examples/afcustom.def87
-rw-r--r--macros/latex/contrib/acroflex/examples/afgraph.pdfbin465359 -> 0 bytes
-rw-r--r--macros/latex/contrib/acroflex/examples/afgraph.tex412
-rw-r--r--macros/latex/contrib/acroflex/examples/afgraph_shaded.tex107
-rw-r--r--macros/latex/contrib/acroflex/examples/aflogo.eps8375
-rw-r--r--macros/latex/contrib/acroflex/examples/aflogo.tex42
-rw-r--r--macros/latex/contrib/acroflex/examples/transf_grphs.pdfbin448762 -> 0 bytes
-rw-r--r--macros/latex/contrib/acroflex/examples/transf_grphs.tex296
-rw-r--r--macros/latex/contrib/acroflex/swf/AcroFleX.swfbin267347 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/README.md31
-rw-r--r--macros/latex/contrib/datepicker-pro/datepicker-pro.dtx444
-rw-r--r--macros/latex/contrib/datepicker-pro/datepicker-pro.ins59
-rw-r--r--macros/latex/contrib/datepicker-pro/doc/datepicker-pro.pdfbin98591 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.pdfbin575036 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.tex678
-rw-r--r--macros/latex/contrib/datepicker-pro/dp-pro.cfg7
-rw-r--r--macros/latex/contrib/datepicker-pro/examples/datepicker_tst.pdfbin355568 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/examples/datepicker_tst.tex106
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon1.pdfbin56702 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon2.pdfbin17947 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon3.pdfbin21672 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon4.pdfbin32733 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon5.pdfbin22993 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon6.pdfbin36598 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/icons/dp_icon7.pdfbin36542 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/joboptions/Standard_transparency.joboptions232
-rw-r--r--macros/latex/contrib/datepicker-pro/swf/datepicker3.swfbin241782 -> 0 bytes
-rw-r--r--macros/latex/contrib/datepicker-pro/swf/datepicker4.swfbin47960 -> 0 bytes
-rw-r--r--macros/latex/contrib/l3backend/CHANGELOG.md9
-rw-r--r--macros/latex/contrib/l3backend/README.md2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-basics.dtx79
-rw-r--r--macros/latex/contrib/l3backend/l3backend-box.dtx13
-rw-r--r--macros/latex/contrib/l3backend/l3backend-color.dtx363
-rw-r--r--macros/latex/contrib/l3backend/l3backend-draw.dtx268
-rw-r--r--macros/latex/contrib/l3backend/l3backend-graphics.dtx30
-rw-r--r--macros/latex/contrib/l3backend/l3backend-header.dtx13
-rw-r--r--macros/latex/contrib/l3backend/l3backend-pdf.dtx31
-rw-r--r--macros/latex/contrib/l3experimental/CHANGELOG.md9
-rw-r--r--macros/latex/contrib/l3experimental/README.md2
-rw-r--r--macros/latex/contrib/l3experimental/l3benchmark.dtx10
-rw-r--r--macros/latex/contrib/l3experimental/l3benchmark.pdfbin314158 -> 314321 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3color.dtx565
-rw-r--r--macros/latex/contrib/l3experimental/l3color.pdfbin356022 -> 367377 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-boxes.dtx6
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-code.pdfbin625002 -> 606221 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-layers.dtx6
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-paths.dtx6
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-points.dtx6
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-scopes.dtx8
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-softpath.dtx6
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-state.dtx36
-rw-r--r--macros/latex/contrib/l3experimental/l3draw-transforms.dtx6
-rw-r--r--macros/latex/contrib/l3experimental/l3draw.dtx29
-rw-r--r--macros/latex/contrib/l3experimental/l3draw.pdfbin491247 -> 489876 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3galley.dtx53
-rw-r--r--macros/latex/contrib/l3experimental/l3galley.pdfbin385667 -> 385812 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3graphics.dtx10
-rw-r--r--macros/latex/contrib/l3experimental/l3graphics.pdfbin363017 -> 363180 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3pdf-code.pdfbin278541 -> 276917 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3pdf.dtx10
-rw-r--r--macros/latex/contrib/l3experimental/l3pdf.pdfbin350700 -> 350863 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3str-format.dtx10
-rw-r--r--macros/latex/contrib/l3experimental/l3str-format.pdfbin344797 -> 344948 bytes
-rw-r--r--macros/latex/contrib/l3experimental/l3sys-shell.dtx10
-rw-r--r--macros/latex/contrib/l3experimental/l3sys-shell.pdfbin311621 -> 311773 bytes
-rw-r--r--macros/latex/contrib/l3experimental/xcoffins.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/xcoffins.pdfbin372787 -> 372941 bytes
-rw-r--r--macros/latex/contrib/l3experimental/xgalley.dtx4
-rw-r--r--macros/latex/contrib/l3experimental/xgalley.pdfbin285577 -> 285732 bytes
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md12
-rw-r--r--macros/latex/contrib/l3kernel/README.md2
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx137
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin584938 -> 585053 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1555993 -> 1555681 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3.ins2
-rw-r--r--macros/latex/contrib/l3kernel/l3alloc.dtx195
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3bootstrap.dtx175
-rw-r--r--macros/latex/contrib/l3kernel/l3box.dtx8
-rw-r--r--macros/latex/contrib/l3kernel/l3candidates.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3cctab.dtx40
-rw-r--r--macros/latex/contrib/l3kernel/l3clist.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3coffins.dtx84
-rw-r--r--macros/latex/contrib/l3kernel/l3color-base.dtx10
-rw-r--r--macros/latex/contrib/l3kernel/l3debug.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3deprecation.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin263178 -> 263337 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx104
-rw-r--r--macros/latex/contrib/l3kernel/l3final.dtx389
-rw-r--r--macros/latex/contrib/l3kernel/l3flag.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3format.ins164
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-assign.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-aux.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-basics.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-convert.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-expo.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-extended.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-logic.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-parse.dtx10
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-random.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-round.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-traps.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-trig.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3fp.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fparray.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3int.dtx8
-rw-r--r--macros/latex/contrib/l3kernel/l3intarray.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3kernel-functions.dtx23
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx381
-rw-r--r--macros/latex/contrib/l3kernel/l3legacy.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3luatex.dtx37
-rw-r--r--macros/latex/contrib/l3kernel/l3msg.dtx84
-rw-r--r--macros/latex/contrib/l3kernel/l3names.dtx45
-rw-r--r--macros/latex/contrib/l3kernel/l3news.pdfbin379235 -> 379235 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news01.pdfbin113527 -> 113527 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news02.pdfbin140776 -> 140776 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news03.pdfbin144785 -> 144785 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news04.pdfbin107115 -> 107115 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news05.pdfbin105090 -> 105090 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news06.pdfbin140795 -> 140795 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news07.pdfbin119094 -> 119094 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news08.pdfbin152413 -> 152413 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news09.pdfbin235322 -> 235322 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news10.pdfbin147097 -> 147097 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news11.pdfbin165946 -> 165946 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news12.pdfbin199139 -> 199139 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.csv1
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.pdfbin75852 -> 75889 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx9
-rw-r--r--macros/latex/contrib/l3kernel/l3prop.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3quark.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3regex.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3seq.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3skip.dtx12
-rw-r--r--macros/latex/contrib/l3kernel/l3sort.dtx27
-rw-r--r--macros/latex/contrib/l3kernel/l3str-convert.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3str.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin279956 -> 280064 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin228250 -> 228354 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin217628 -> 217736 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-case.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3text-purify.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx27
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3tl.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3token.dtx17
-rw-r--r--macros/latex/contrib/l3kernel/l3unicode.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/source3.pdfbin5865524 -> 5844782 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
231 files changed, 1820 insertions, 16456 deletions
diff --git a/macros/context/contrib/context-letter/VERSION b/macros/context/contrib/context-letter/VERSION
index fd288baf16..c7be130321 100644
--- a/macros/context/contrib/context-letter/VERSION
+++ b/macros/context/contrib/context-letter/VERSION
@@ -1 +1 @@
-2020.01.20
+2020.08.07
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkii
index 15645cb73a..214ce25928 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkvi b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkvi
index 9e06a46858..2831825626 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkvi
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-00.mkvi
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
@@ -666,12 +666,23 @@
{\setuevalue{\e!start#element}{\correspondence_paragraph_start[#environment][#element]}%
\setuevalue{\e!stop #element}{\correspondence_paragraph_stop [#environment][#element]}}
+% \unexpanded\def\correspondence_paragraph_start[#environment][#element]%
+% {\begingroup
+% \correspondence_parameters{#environment}{#element}%
+% \dodoubleempty\correspondence_paragraph_start_parameters}%
+%
+% \unexpanded\def\correspondence_paragraph_start_parameters[#parameters][#dummy]% #dummy removes the linebreak before the first line
+% {\iffirstargument
+% \setupcurrentcorrespondenceparagraph[#parameters]%
+% \fi
+% \grabbufferdatadirect{\????correspondenceparagraphbuffer\currentcorrespondenceparagraph}{\e!start\currentcorrespondenceelement}{\e!stop\currentcorrespondenceelement}}
+
\unexpanded\def\correspondence_paragraph_start[#environment][#element]%
{\begingroup
\correspondence_parameters{#environment}{#element}%
- \dodoubleempty\correspondence_paragraph_start_parameters}%
+ \dosingleempty\correspondence_paragraph_start_parameters}%
-\unexpanded\def\correspondence_paragraph_start_parameters[#parameters][#dummy]% #dummy removes the linebreak before the first line
+\unexpanded\def\correspondence_paragraph_start_parameters[#parameters]%
{\iffirstargument
\setupcurrentcorrespondenceparagraph[#parameters]%
\fi
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkii
index 8acab8898d..205c953041 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkvi b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkvi
index 524bd06a32..54a1cf4cab 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkvi
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-01.mkvi
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkii
index 69206f144a..02dfc67e3f 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkvi b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkvi
index e4c3efea32..6b543d1970 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkvi
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-02.mkvi
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-03.mkvi b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-03.mkvi
index efacae35e9..8f973cf46d 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-03.mkvi
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-03.mkvi
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
@@ -246,7 +246,8 @@
\startsetups[\????resumesectionrenderings:\v!head:\v!casual]
\hbox to\hsize\bgroup
- \framed[\c!offset=2\points,\c!strut=\v!no,\c!framecolor=resume:forename]{\correspondenceparameter{image}}
+ \doifsomething{\correspondenceparameter{image}}
+ {\framed[\c!offset=2\points,\c!strut=\v!no,\c!framecolor=resume:forename]{\correspondenceparameter{image}}}
\hfill
\hbox\bgroup
\formattedcorrespondenceparameter{firstname}
@@ -282,8 +283,9 @@
\doifsomething{\correspondenceparameter {email}}{\formattedcorrespondenceparameter {email}\\}
\doifsomething{\correspondenceparameter {info}}{\formattedcorrespondenceparameter {info}\\}
\stopframed
- \quad
- \framed[\c!offset=2\points,\c!strut=\v!no]{\correspondenceparameter{image}}
+ \doifsomething{\correspondenceparameter{image}}
+ {\quad
+ \framed[\c!offset=2\points,\c!strut=\v!no]{\correspondenceparameter{image}}}
\egroup
\stopsetups
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-06.mkvi b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-06.mkvi
index 6d541bbbaa..e82dc6c0de 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-06.mkvi
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/s-cor-06.mkvi
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkii
index 625f7ecab5..6db1d21484 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkiv
index 7baa52c34a..ee2ff34e5b 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-letter.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkii
index 541ffa0830..99a4819d40 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkiv
index e859aee477..d890dad806 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/base/t-memo.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\unprotect
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkii
index 9b1e599d57..600280e5bf 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkii
@@ -8,12 +8,12 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
%C the Free Software Foundation, either version 3 of the License, or
-%C any later version.
+%C (at your option) any later version.
%C
%C This program is distributed in the hope that it will be useful,
%C but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkiv
index 9b1e599d57..600280e5bf 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-blockstyle.mkiv
@@ -8,12 +8,12 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
%C the Free Software Foundation, either version 3 of the License, or
-%C any later version.
+%C (at your option) any later version.
%C
%C This program is distributed in the hope that it will be useful,
%C but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkii
index 745ba2f56d..ee986cf8de 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkii
@@ -8,12 +8,12 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
%C the Free Software Foundation, either version 3 of the License, or
-%C any later version.
+%C (at your option) any later version.
%C
%C This program is distributed in the hope that it will be useful,
%C but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupletter
[\c!date=\currentdate]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkiv
index 745ba2f56d..ee986cf8de 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-default.mkiv
@@ -8,12 +8,12 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
%C the Free Software Foundation, either version 3 of the License, or
-%C any later version.
+%C (at your option) any later version.
%C
%C This program is distributed in the hope that it will be useful,
%C but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupletter
[\c!date=\currentdate]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkii
index e21193474b..fb54b77614 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkiv
index e21193474b..fb54b77614 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dina.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkii
index e363694220..f1a4ac9268 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkiv
index e363694220..f1a4ac9268 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dinb.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkii
index 7febd6229b..27b84b5de1 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkiv
index 7febd6229b..27b84b5de1 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-dutch.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkii
index d922234b92..91ec549d83 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkiv
index d922234b92..91ec549d83 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-french.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkii
index a8f29214a8..c8a246496c 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkiv
index a8f29214a8..c8a246496c 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-fullblock.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkii
index c655a2a6a5..0794da75da 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkiv
index c655a2a6a5..0794da75da 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-gbrief.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkii
index 1b4dd7d436..ecb9708cb7 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkiv
index 1b4dd7d436..ecb9708cb7 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-hanging.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkii
index eb1ae07e1f..ec90177ea4 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkiv
index eb1ae07e1f..ec90177ea4 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-knuth.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkii
index 95323e8f42..17cb865b4b 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkiv
index 95323e8f42..17cb865b4b 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-modified.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkii
index 8dc6c86a95..79a807c3e9 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkiv
index 8dc6c86a95..79a807c3e9 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-semiblock.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkii
index bddf849f03..bda387d377 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupletterlayer
[\v!head,\v!nexthead,\v!lefthead,\v!righthead]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkiv
index bddf849f03..bda387d377 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-setups.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupletterlayer
[\v!head,\v!nexthead,\v!lefthead,\v!righthead]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkii
index 769b6055a4..86959ca8c6 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkiv
index 769b6055a4..86959ca8c6 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-simplified.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[blockstyle]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkii
index 5544b000b1..25e35e35f6 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkiv
index 92f569d471..e30de18f93 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swiss.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkii
index 19a2cb843c..002e5ffd5e 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkiv
index 9f0b4e61a1..121d2b3d2a 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/letter-imp-swissleft.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useletterstyle[dinb]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkii
index 6af6824905..7c1591e5f7 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupmemo
[\c!date=\currentdate]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkiv
index 6af6824905..7c1591e5f7 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-default.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupmemo
[\c!date=\currentdate]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkii
index 3783157b2f..5b71ed210a 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\usememostyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkiv
index 3783157b2f..5b71ed210a 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-margin.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\usememostyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkii
index 077a6c02dc..ce69ab1266 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\usememostyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkiv
index 077a6c02dc..ce69ab1266 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-memo.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\usememostyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkii b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkii
index 2a21da6002..4c447142dc 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkii
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkii
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\usememostyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkiv
index 2a21da6002..4c447142dc 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/memo-imp-table.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2011 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\usememostyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-blue.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-blue.mkiv
index ce64b11bcb..0681222e6f 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-blue.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-blue.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[casual]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-green.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-green.mkiv
index 94c078313f..e0624b8a73 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-green.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-green.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[casual]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-grey.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-grey.mkiv
index 3ed16e01ef..f1656addb4 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-grey.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-grey.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[casual]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-orange.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-orange.mkiv
index 9a31830688..79b723ef5b 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-orange.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-orange.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[casual]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-red.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-red.mkiv
index 9a3b991df8..dfe2d64ad3 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-red.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual-red.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[casual]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual.mkiv
index 73424613cc..d6eab7cab2 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-casual.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2011 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-blue.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-blue.mkiv
index 8b0108e8ad..ce13a64440 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-blue.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-blue.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[classic]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-green.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-green.mkiv
index 4b8efaa702..a882f7f938 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-green.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-green.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[classic]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-grey.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-grey.mkiv
index 8e81770fe5..47c9972985 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-grey.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-grey.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[classic]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-orange.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-orange.mkiv
index 02e4701700..9aa0b0d652 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-orange.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-orange.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[classic]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-red.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-red.mkiv
index 18a51c1aa7..f16277c07d 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-red.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic-red.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[classic]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic.mkiv
index 01710ec613..4c735c55f9 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-classic.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\useresumestyle[default]
diff --git a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-default.mkiv b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-default.mkiv
index a8a1eef1a4..e46c1a9ec7 100644
--- a/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-default.mkiv
+++ b/macros/context/contrib/context-letter/tex/context/third/letter/style/resume-imp-default.mkiv
@@ -8,7 +8,7 @@
%D copyright=Wolfgang Schuster,
%D license=GNU General Public License]
-%C Copyright (C) 2012 Wolfgang Schuster
+%C Copyright (C) 2012 Wolfgang Schuster
%C
%C This program is free software: you can redistribute it and/or modify
%C it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@
%C GNU General Public License for more details.
%C
%C You should have received a copy of the GNU General Public License
-%C along with this program. If not, see <http://www.gnu.org/licenses/>.
+%C along with this program. If not, see <https://www.gnu.org/licenses/>.
\setupresumelayout
[\v!firstpage,\v!secondpage]
diff --git a/macros/latex/contrib/acroflex/README.md b/macros/latex/contrib/acroflex/README.md
deleted file mode 100644
index 0d5e7f52e6..0000000000
--- a/macros/latex/contrib/acroflex/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-The AcroFleX Package
-Author: D. P. Story
-Dated: 2016/08/29
-
-The acroflex package is part of the AeB Pro family of packages.
-It is a package that creates a graphing screen using the
-rmannot package. The user can type in functions and graph them.
-A graphing screen can be populated with pre-packaged functions for
-the user the scrutinize and interact with. The package can graph
-functions of a single variable x, a pair of parametric equations that
-are functions of t, and a polar function of t.
-
-The graphing screen is a rich media annotation what uses a specially
-developed SWF file, called the AcroFLeX Graphing widget. This package
-takes advantage of rich media annotations, which is a version 9 feature
-of Acrobat. This package requires Acrobat Pro and Distiller version 9.
-The user needs to use Adobe Reader 9.0 in order to obtain the graphing
-functionality.
-
-Further description and examples may be found at the acroflex home page at
-http://www.math.uakron.edu/~dpstory/acroflex.html
-
-Let me know if there are problems or suggested features. e-mail
-me at dpstory@uakron.edu or dpstory@acrotex.net
-
-Now, I simply must get back to my retirement.
-
-D. P. Story
-dpstory@uakron.edu
-2016/01/30
diff --git a/macros/latex/contrib/acroflex/acroflex.cfg b/macros/latex/contrib/acroflex/acroflex.cfg
deleted file mode 100644
index 1a2cd3fea1..0000000000
--- a/macros/latex/contrib/acroflex/acroflex.cfg
+++ /dev/null
@@ -1,10 +0,0 @@
-%
-% AcroFleX Graphing Bundle Configuration File
-% D. P. Story, dpstory@acrotex.net, storyd@nwfsc.edu, dpstory@uakron.edu
-%
-\pathToAcroFlex{C:/Users/Public/Documents/My TeX Files/tex/latex/aeb/aebpro/acroflex/swf}
-%
-% The following path is used by dpstory during development
-%
-% \pathToAcroFlex{C:/acroflex/acroflex/bin-release}
-
diff --git a/macros/latex/contrib/acroflex/acroflex.dtx b/macros/latex/contrib/acroflex/acroflex.dtx
deleted file mode 100644
index b2c350055b..0000000000
--- a/macros/latex/contrib/acroflex/acroflex.dtx
+++ /dev/null
@@ -1,1951 +0,0 @@
-%\iffalse
-%<*copyright>
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Acroflex.sty package, %%
-%% Copyright (C) 2008 -- 2016 D. P. Story %%
-%% dpstory@acrotex.net %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%</copyright>
-%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
-%<package>\ProvidesPackage{acroflex}
-%<package> [2016/08/29 v1.6c AcroFLeX: AcroTeX and Adobe Flex (dps)]
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage[colorlinks,hyperindex]{hyperref}
-\begin{document}
-\def\AcroFLeX{AcroF\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}
- \GetFileInfo{acroflex.sty}
- \title{%
- \texorpdfstring
- {\AcroFLeX: Merging {Acro\negthinspace\TeX} and FLEX}
- {AcroFLeX: Merging AcroTeX and FLEX}}
- \author{D. P. Story\\
- Email: \texttt{dpstory@acrotex.net}}
- \date{processed \today}
- \maketitle
- \tableofcontents
- \let\Email\texttt
- \DocInput{acroflex.dtx}
- \PrintIndex
-\end{document}
-%</driver>
-% \fi
-% \MakeShortVerb{|}
-% \StopEventually{}
-%
-% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let}
-% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi}
-% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup}
-% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand}
-% \DoNotIndex{\space,\@empty,\special}
-%
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
-% \section{Introduction}
-%
-% The word \textbf{\AcroFLeX} is meant to convey a merging of two computer technologies:
-% \begin{itemize}
-% \item \textbf{Acro}: connotes both \textbf{Adobe Acrobat} (\textbf{Adobe Reader})
-% and \textbf{{Acro\negthinspace\TeX}} (as in the
-% \textbf{{Acro\negthinspace\TeX} eDucation Bundle} or, just \textbf{AeB}).
-% \item \textbf{F\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}: connotes
-% \textbf{Adobe FLEX 3}. FLEX 3 is used to create SWF files to interact with the user.
-% In the case of graphing, plotting information is passed from Acrobat, via JavaScript,
-% to the Flash widget. ActionScript receives the data, plots the points, and
-% connects them with a smooth curve or a straight line segment.
-% \end{itemize}
-% Acrobat 9 Pro introduces the rich media annotation which plays FLV movies
-% and SWF files natively. Acrobat also provides a scripting bridge
-% between JavaScript for Acrobat, and ActionScript, the scripting
-% language of Flash player. This bridge enables the PDF and the
-% Flash widget, embedded in the rich media annotation, to communicate. The scripting bridge
-% opens up wonderful opportunities for application to the education
-% sector. The graphing of {\AcroFLeX} is one such application of the new
-% PDF-Flash connection to education.
-%
-% \textbf{{\AcroFLeX}} uses the commercial product Adobe FLEX Builder~3 and
-% FLEX~3 SDK to produce Flash widgets, and the AeB
-% to create PDF documents with appropriate JavaScript to communicate
-% with the Flash widget. FLEX Builder~3 is currently free for students
-% and educators, the FLEX 3 SDK is free to all.
-%
-% This style file defines some basic controls for
-% \textbf{{\AcroFLeX} Graphing} for controlling graphical SWF files
-% for graphing.
-%
-% These commands are general {\LaTeX} commands, that require no special driver, so
-% they can be used by, for example, pdftex; however, we use SWF files to produce
-% the graphing screen with the built-in ActionScript to communicate with the PDF.
-% For this, you will need Acrobat 9 Pro. In that case, you might as well use the
-% Acrobat Distiller to produce your PDF, but it is not necessary.
-%
-% \medskip\noindent
-% Let's begin with a declaration of the {\AcroFLeX} logo.
-% \begin{macrocode}
-\RequirePackage{rmannot}[2016/02/01]
-% \end{macrocode}
-%\changes{v1.6}{2015/10/13}{Save catcodes of subscript and superscript, both
-% of these are used in ordinary characters in the file.}
-% Change catcodes of subscript and superscript to other.
-% \begin{macrocode}
-\edef\af@subscriptCat{\the\catcode`\_}
-\edef\af@superscriptCat{\the\catcode`\^}
-\def\af@restoreCats{%
- \catcode`\_=\af@subscriptCat
- \catcode`\^=\af@superscriptCat
-}
-\catcode`\_=12\relax \catcode`\^=12\relax
-\def\AcroFLeX{%
- AcroF\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}
-% \end{macrocode}
-% \begin{macro}{\pathToAcroFlex}
-% Set the path to {\AcroFLeX} widget, \texttt{AcroFlex.swf}, that actually does the
-% graphing.
-% \begin{macrocode}
-\newcommand{\pathToAcroFlex}[1]{\def\af@pathToAcroFlex{#1}%
- \ifx\af@pathToAcroFlex\@empty
- \PackageError{acroflex}{%
- You must specify a full path to AcroFlex.swf}{}\else
- \saveNamedPath{acroflexWidget}{\af@pathToAcroFlex/AcroFlex.swf}\fi
-}
-\def\af@pathToAcroFlex{}
-\@onlypreamble{\pathToAcroFlex}
-% \end{macrocode}
-% \end{macro}
-% \paragraph*{Define package options.}
-% \begin{macro}{lang}
-% We offer up a single package option, \texttt{lang}. The only languages supported
-% at this time are \texttt{english} and \texttt{german}. Additional languages may be supported in the
-% future.
-% \begin{macrocode}
-\define@choicekey*+{acroflex.sty}{lang}[\val\nr]{english,german}
-{%
- \ifcase\nr\relax
- \def\af@lang@type{afcustom_us.def}
- \or
- \def\af@lang@type{afcustom_de.def}
- \else
- \def\af@lang@type{afcustom.def}
- \fi
-}{\PackageWarning{acroflex}{Bad choice for lang, permissible values
-are english and german. No lang key is equivalent to english. Try again}}
-\def\af@lang@type{afcustom.def}
-% \end{macrocode}
-% \end{macro}
-% \paragraph*{Process the options.}
-% We process our meager number of options here.
-% \begin{macrocode}
-\ProcessOptionsX
-% \end{macrocode}
-% \paragraph*{Input Configuration File.} At this point, we input the configuration file. The
-% major entry, and probably the only entry in this file is the \cs{pathToAcroFlex}. The file
-% should contain a line of code like this one:
-%\begin{verbatim}
-% \pathToAcroFlex{c:/acrotex/aebpro/acroflex/swf}
-%\end{verbatim}
-% \begin{macrocode}
-\InputIfFileExists{acroflex.cfg}{}{}
-% \end{macrocode}
-%
-% \section{Graphing a Single Function}
-%
-% This section describes the graphing screen and its controls.
-%
-% \subsection{Some Initial Parameters}
-%
-% Should you wish to use an {\AcroFLeX} graphic in your PDF, you will need to declare
-% several parameters for each graphic: \cs{dimScreenGraph} and \cs{graphName},
-% these are the rich media annotation dimensions, the rich media annot number of this annot
-% on this page, and a unique name (unique to the document) for the graph.
-%
-% You also need to declare a default function, if different from the one set by this package,
-% the default domain/range of $x$ and $y$ (the graph view window), and the default domain
-% of parameter equations (this last is options if no parametric equations are to be used).
-%
-% \paragraph{Setting the Dimensions of the Annotation}
-%
-% \begin{macro}{\dimScreenGraph}
-% This is a convenience command for storing the dimensions of the Flash widget. It assumes
-% you do not resize using \cs{resizebox} or \cs{scalebox}. The command defines two
-% commands available to the document author, these are \cs{hScreenGraph} and
-% \cs{vScreenGraph}, for the width and height respectively.
-% \begin{macrocode}
-\newcommand{\dimScreenGraph}[2]{{%
- \setlength{\dimen@}{#1}\xdef\hScreenGraph{\the\dimen@}%
- \setlength{\dimen@}{#2}\xdef\vScreenGraph{\the\dimen@}%
-}}
-% \end{macrocode}
-% \end{macro}
-%
-% \paragraph{Setting the Name of the Graph}
-%
-% \begin{macro}{\graphName}
-% Each graphing screen must have a unique (base)name, the name is specified
-% using the command \cs{graphName}; for example \verb!\graphName{mygraph}!
-% specifies the base name for the next graphing screen. This name is use
-% in creating the control for the graphing screen (a Flash widget).
-%
-% \begin{macrocode}
-\newcommand{\graphName}[1]{\def\afgraphName{#1}}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\defaultFunction}
-% Declare the default function to appear in the \cs{fileInputField} on startup
-% or on reset. The function takes two arguments, the first is a display version of
-% the function, the second is a proper JavaScript form of the function. The default
-% is \verb!\defaultFunction{x^2}!
-% \begin{macrocode}
-\newcommand{\defaultFunction}[1]{\def\af@DefaultFunction{#1}}
-\defaultFunction{x^2}
-% \end{macrocode}
-% \end{macro}
-%
-% \paragraph{Setting the View Screen Dimensions: Range/Domain}
-%
-% \begin{macro}{\defaultDomRng}
-% \begin{macro}{\defaultDomP}
-% Set the default domain and range of the default function. These values will appear
-% on start-up, and when the graph is cleared.
-% \begin{macrocode}
-\def\defaultDomRng#1#2#3#4{%
- \def\af@DefaultDomMin{#1}\def\af@DefaultDomMax{#2}%
- \def\af@DefaultRngMin{#3}\def\af@DefaultRngMax{#4}%
-}
-\def\defaultDomP#1#2{%
- \def\af@DefaultDomMint{#1}\def\af@DefaultDomMaxt{#2}%
-}
-% \end{macrocode}
-% We set the default domain and range to correspond with the
-% default function.
-% \begin{macrocode}
-\defaultDomRng{-2}{2}{0}{4}
-\defaultDomP{0}{2*PI}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{The Graphing Screen and its Controls}
-%
-% Here, we describe the graphing screen and its controls. The graphing screens and
-% its controls may be arranged on the page in any way the document author wishes.
-%
-% \subsubsection{The Graphing Screen}
-%
-% The graphing screen is the centerpiece of the {\AcroFLeX} graphing system.
-%
-% \begin{macro}{\graphScreen}
-%
-% The \cs{graphScreen} command is just the \cs{rmAnnot} command with the
-% fourth argument set to the \texttt{acroflexWidget}. The command takes
-% three parameters, each just passed to \cs{rmAnnot}: The first is optional
-% that sets the key-value pairs, an important one is \texttt{poster=afposter}
-% to get the famous \AcroFLeX{} logo inserted as the opster; the second
-% is the width; the third is the height. The widget resizes itself, so the choice
-% of the dimensions is up to the document author.
-%
-% If \cs{dimSreenGraph} is used then you can simply use the dimensions declared there;
-% for example,
-%\begin{verbatim}
-% \dimScreenGraph{186bp}{186bp*3/4}
-% ...
-% \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}
-%\end{verbatim}
-% Note the use of calculated height, three-fourths of the width. \cs{graphScreen} can be,
-% in turn, be resized using \cs{resizebox} or \cs{scalebox}.
-%
-% \begin{macrocode}
-\newcommand{\graphScreen}[3][]{\rmAnnot[#1,%
- name=afRM\afgraphName]{#2}{#3}{acroflexWidget}}%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\iconFloatGraphScreen}
-% Should you wish to create a graphing screen in a floating window, use the
-% \cs{iconFloatGraphScreen}. It takes three arguments, the first one is optional
-% and is passed to the first argument the underlying \cs{graphScreen}. A typical
-% first argument is a poster key value: \texttt{poster=aflogo}. The second two are
-% dimensions (width and height). We use \cs{resizebox} from the graphicx package.
-% The \cs{resizebox} can take an exclamation point (!) as its arguments, in this
-% case, the object will be resized to keep its aspect ratio. See the documentation
-% of \cs{resizebox} for more details. Below is an example,
-%\begin{verbatim}
-% \iconFloatGraphScreen[poster=aflogo]{40bp}{!}
-%\end{verbatim}
-% The rich media annotation has a transparent button on top of it. The poster of the annotation
-% can be see through the button. Pressing on the button activates, or deactivates the annotation.
-%
-% The default is not to allow the user to close the window or go into full screen mode, however
-% by executing\DescribeMacro{\allowFSFloatGS} \cs{allowFSFloatGS} before the
-% \cs{iconFloatGraphScreen} command, we allow for full screen, while
-% \DescribeMacro{\defaultFloatGS} \cs{defaultFloatGS} returns to the default state.
-% \begin{macrocode}
-\newcommand{\allowFSFloatGS}{\def\af@passcontext{\@gobble}}
-\newcommand{\defaultFloatGS}{\def\af@passcontext{passcontext}}
-% \end{macrocode}
-% We set the default value, we do no allow full screen.
-% \begin{macrocode}
-\defaultFloatGS
-% \end{macrocode}
-% Now for the \cs{iconFloatGraphScreen} command
-% \begin{macrocode}
-\newcommand{\iconFloatGraphScreen}[3][]{%
- \makebox[0pt][l]{%
- \resizebox{#2}{#3}{%
-% \end{macrocode}
-% Here is the graphing screen
-% \begin{macrocode}
- \graphScreen[#1,windowed,\af@passcontext,deactivated=pageclose
- ]{\hScreenGraph}{\vScreenGraph}}}%
- \resizebox{#2}{#3}{%
-% \end{macrocode}
-% And the button that overlays it
-% \begin{macrocode}
- \pushButton[\S{S}\H{N}\autoCenter{n}\W0\BG{}\BC{}
- \TU{\tt@iconFloatGraphScreen}\A{\JS{%
- var rm = this.getAnnotRichMedia(%
- this.pageNum, "afRM\afgraphName");\r
- rm.activated=!rm.activated;
- }}]{float\afgraphName Btn-\therm@Cnt}{\hScreenGraph}
- {\vScreenGraph}}%
-}
-\newcommand{\tticonFloatGraphScreen}[1]{%
- \def\tt@iconFloatGraphScreen{#1}}
-\tticonFloatGraphScreen{Click to view graphing screen,
- click again to hide graphing screen.}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Various Controls}
-%
-% The graphing screen, obviously, graphs functions of the form $ y = f(x) $. The user
-% must have a way of entering the functional part, the $f(x)$. \cs{fileInputField}
-% is used for this purpose. The \cs{graphBtn} is used to graph the function, while
-% \cs{graphClrBtn} is used to clear the graph and deactivate the Flash widget.
-%
-% The domain of the variable $x$ is specified though the commands
-% \cs{domMin} and \cs{domMax}; while the range of values on
-% the $y$ axis is specified by \cs{rngMin} and \cs{rngMax}. The number of points
-% that are plotted can be specified through \cs{numPoints}.
-%
-% \paragraph{The Input Function.}
-% \begin{macro}{\funcInputField}
-% The parameters for all the above mentioned functions, with the exception of
-% \cs{afDefaultFunction}, take three parameters generally described below:
-%
-% \begin{enumerate}
-% \item[\texttt{[\#1]}:] optional arguments to modify appearance of the form field
-% \item[\texttt{\#2}:] the width of the form field
-% \item[\texttt{\#3}:] the height of the form field
-% \end{enumerate}
-% The definitions below use two new keys, \cs{nuDV} and \cs{nuV}, to avoid the use
-% of unicode when the unicode option of hyperref has been invoked. The initial and
-% default values of the function input field may contain symbols like \texttt{\string^}
-% that hyperref does not like and strips out. These two keys are also used in
-% \cs{functionSelect} below, for the same reason.
-% \begin{macrocode}
-\newcommand{\funcInputField}[3][]{\makebox[0pt][l]{%
- \textField[%
- \nuDV{\af@DefaultFunction}\nuV{\af@DefaultFunction}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenFunction}{1bp}{1bp}}%
- \textField[%
- \BC{0 0 0}\nuDV{\af@DefaultFunction}\nuV{\af@DefaultFunction}
- \TU{\tt@funcInputField}#1\AA{\AAFormat{%
- \formatFunctionInput{"\afgraphName theHiddenFunction"}}
- \AAKeystroke{\keystrokeFunctionInput}
- }%
- ]{\afgraphName theFunction}{#2}{#3}%
-}
-\newcommand{\ttfuncInputField}[1]{%
- \def\tt@funcInputField{#1}}
-\ttfuncInputField{Enter any of the following for expressions:\r
-\space\space1. A function of x of the form f(x);\r
-\space\space2. A polar function of t of the form f(t);\r
-\space\space3. A set of parametric functions of t of the form f(t);g(t)
-\r\space\space\space\space\space(separated by a semi-colon);\r
-\space\space4. A list of points, (a1,b1);(a2,b2);...;(an,bn)\r
-\space\space\space\space\space(separated by semi-colons).
-}
-% \end{macrocode}
-% I originally named the previous macro definition \cs{fileInputField}. My bad!
-% In case there is someone out there that uses this package, I'll let
-% \cs{fileInputField} to \cs{funcInputField}.
-% \begin{macrocode}
-\let\fileInputField\funcInputField
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\formatFunctionInput}
-% \cs{formatFunctionInput} supplies format event for the
-% \cs{funcInputField}. Then the user enters a new function, the JavaScript function
-% \texttt{formatFunctionInput} executes \texttt{ParseInput} (from \textsf{exerquiz}), and places it
-% in the hidden function field.
-% \begin{macrocode}
-\def\formatFunctionInput#1{%
- try{ formatFunctionInput(#1) } catch(e){};
-}
-\def\keystrokeFunctionInput{%
- try{ keystrokeFunctionInput() } catch(e){};
-}
-% \end{macrocode}
-% \end{macro}
-% \paragraph{The Curve Select Combo Box.}
-% \begin{macro}{\functionSelect}
-% \begin{macro}{\initFuncSelect}
-% \begin{macro}{\savedelSelBtn}
-% This is an optional combo box for selecting curves and points to graph.
-% Note, this drop down list should not overlay the graphing widget, the widget
-% is on top, and the list cannot be seen.
-% \begin{macrocode}
-\newcommand{\afCurve}[1]{\def\afcurve{#1 }\def\afcurvei{#1}}
-\afCurve{Curve}
-\newcommand{\afPoint}[1]{\def\afpoint{#1 }\def\afploti{#1}}
-\afPoint{Point}
-\newcommand{\afUnused}[1]{\def\afunused{#1}}
-\afUnused{--unused}
-% \end{macrocode}
-% Any re-definitions should take place in the preamble only!
-% \begin{macrocode}
-\@onlypreamble\afCurve
-\@onlypreamble\afPoint
-\@onlypreamble\afUnused
-% \end{macrocode}
-% The listing of the drop-down menu. To begin with, there are eight
-% menu items: four for curves, and four for plotted points.
-% \begin{macrocode}
-\newcommand{\initFuncSelect}[1]{\def\af@initializeFuncSelect{#1}}
-\initFuncSelect{%
- [(\af@DefaultFunction)(\afcurve1)]%
- [(<\afcurve2\afunused>)(\afcurve2)]%
- [(<\afcurve3\afunused>)(\afcurve3)]%
- [(<\afcurve4\afunused>)(\afcurve4)]%
- [(<\afpoint1\afunused>)(\afpoint1)]%
- [(<\afpoint2\afunused>)(\afpoint2)]%
- [(<\afpoint3\afunused>)(\afpoint3)]%
- [(<\afpoint4\afunused>)(\afpoint4)]}
-% \end{macrocode}
-% The combo box that displays the above items. On selection,
-% we populate the \texttt{theFunction} field.
-% \begin{macrocode}
-\newcommand{\functionSelect}[3][]{%
- \comboBox[\TU{\tt@functionSelect}#1\Ff{\FfCommitOnSelChange}
- \nuDV{\af@DefaultFunction}\nuV{\af@DefaultFunction}
- \AA{\AAKeystroke{%
- if (!event.willCommit) {\r\t
- this.getField(
- "\afgraphName theFunction").value=event.changeEx;\r
- }}}]{\afgraphName ComboSelect}{#2}{#3}{\af@initializeFuncSelect}%
-}
-\newcommand{\ttfunctionSelect}[1]{%
- \def\tt@functionSelect{#1}}
-\ttfunctionSelect{Enter a function on \afcurvei1--\afcurvei4, or
- a list of points on \afploti1--\afploti4.}
-% \end{macrocode}
-% Saves the current function to the list, shift-click deletes
-% the current list item, and returns it to its default.
-% \begin{macrocode}
-\newcommand{\savedelSelBtn}[3][]{%
- \pushButton[\TU{\tt@savedelSelBtn}#1
- \A{\JS{saveDelSelAction("\afgraphName");
- }}]{\afgraphName savedelSelectBtn}{#2}{#3}%
-}
-\newcommand{\ttsavedelSelBtn}[1]{\def\tt@savedelSelBtn{#1}}
-\ttsavedelSelBtn{Click to save current function to list, shift-click
- to delete the current function from list}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \paragraph{The Graphing Button.}
-% \begin{macro}{\graphBtn}
-% Clicking on this button when the
-% rich media annot is not activated will activate it. Clicking on
-% this button when the rich media annot is activate will cause the
-% function in the \cs{fileInputField} to be graphed.
-% \begin{macrocode}
-\newcommand{\graphBtn}[3][]{%
- \pushButton
- [\BC{0 0 0}\CA{Graph It!}\TU{\tt@graphBtn}#1
- \A{\JS{graphBtnAction("\afgraphName",this.pageNum);
- }}]{\afgraphName graphIt}{#2}{#3}%
-}
-\newcommand{\ttgraphBtn}[1]{\def\tt@graphBtn{#1}}
-\ttgraphBtn{Press to graph the function}
-% \end{macrocode}
-% \end{macro}
-% \paragraph{The Clear Screen Button.}
-%
-% \begin{macro}{\graphClrBtn}
-% \begin{macro}{\clearGraphJS}
-% Click on this button and all fields
-% associated with this graphing screen are reset. Shift click makes the
-% AcroFlex widget deactivated.
-% \begin{macrocode}
-\newcommand{\clearGraphJS}{%
- clearGraph("all","\afgraphName",this.pageNum);}
-\newcommand{\graphClrBtn}[3][]{\pushButton[\BC{0 0 0}\CA{Clear}
- \A{\JS{\clearGraphJS}}\TU{\tt@graphClrBtn}#1
- ]{\afgraphName clearIt}{#2}{#3}%
-}
-\newcommand{\ttgraphClrBtn}[1]{\def\tt@graphClrBtn{#1}}
-\ttgraphClrBtn{Click to clear graph, shift-click to deactivate the
- graphing screen}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \paragraph{The Domain the function is to be graphed over.}
-%
-% \begin{macro}{\domMin}
-% \begin{macro}{\domMax}
-% The lower endpoint of the interval over which the function is
-% graphed.
-%
-% \begin{macrocode}
-\newcommand{\domMin}[3][]{\makebox[0pt][l]{%
- \textField[\nuDV{\af@DefaultDomMin}\nuV{\af@DefaultDomMin}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenDom.min}{1bp}{1bp}}%
- \textField[\textSize{0}\nuV{\af@DefaultDomMin}
- \nuDV{\af@DefaultDomMin}\BC{0 0 0}\TU{\tt@domMin}#1\AA{%
- \AAKeystroke{\keystrokeDomRng{"\afgraphName theHiddenDom.min"}}
- \AAFormat{\formatVarIntervals{"\afgraphName theHiddenDom.min"}}
- }]{\afgraphName theDom.min}{#2}{#3}%
-}
-\newcommand{\ttdomMin}[1]{\def\tt@domMin{#1}}
-\ttdomMin{Enter the minimum value for the variable x}
-% \end{macrocode}
-% The upper endpoint of the interval over which the function is graphed.
-% \begin{macrocode}
-\newcommand{\domMax}[3][]{\makebox[0pt][l]{%
- \textField[\nuDV{\af@DefaultDomMax}\nuV{\af@DefaultDomMax}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenDom.max}{1bp}{1bp}}%
- \textField[\textSize{0}\nuV{\af@DefaultDomMax}
- \nuDV{\af@DefaultDomMax}\BC{0 0 0}\TU{\tt@domMax}#1\AA{%
- \AAKeystroke{\keystrokeDomRng{"\afgraphName theHiddenDom.max"}}
- \AAFormat{\formatVarIntervals{"\afgraphName theHiddenDom.max"}}
- }]{\afgraphName theDom.max}{#2}{#3}%
-}
-\newcommand{\ttdomMax}[1]{\def\tt@domMax{#1}}
-\ttdomMax{Enter the maximum value for the variable x}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \paragraph{The interval on vertical axis what is to be displayed.}
-% \begin{macro}{\rngMin}
-% \begin{macro}{\rngMax}
-% The lower endpoint of the interval on the $y$-axis that is displayed on the
-% graphing screen.
-% \begin{macrocode}
-\newcommand{\rngMin}[3][]{\makebox[0pt][l]{%
- \textField[\nuDV{\af@DefaultRngMin}\nuV{\af@DefaultRngMin}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenRng.min}{1bp}{1bp}}%
- \textField[\textSize{0}\nuV{\af@DefaultRngMin}
- \nuDV{\af@DefaultRngMin}\BC{0 0 0}\TU{\tt@rngMin}#1\AA{%
- \AAKeystroke{\keystrokeDomRng{"\afgraphName theHiddenRng.min"}}
- \AAFormat{\formatVarIntervals{"\afgraphName theHiddenRng.min"}}
- }]{\afgraphName theRng.min}{#2}{#3}%
-}
-\newcommand{\ttrngMin}[1]{\def\tt@rngMin{#1}}
-\ttrngMin{Enter the minimum value for the variable y}
-% \end{macrocode}
-% The upper endpoint of the interval on the $y$-axis that is displayed on the
-% graphing screen.
-% \begin{macrocode}
-\newcommand{\rngMax}[3][]{\makebox[0pt][l]{%
- \textField[\nuDV{\af@DefaultRngMax}\nuV{\af@DefaultRngMax}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenRng.max}{1bp}{1bp}}%
- \textField[\textSize{0}\nuV{\af@DefaultRngMax}
- \nuDV{\af@DefaultRngMax}\BC{0 0 0}\TU{\tt@rngMax}#1\AA{%
- \AAKeystroke{\keystrokeDomRng{"\afgraphName theHiddenRng.max"}}
- \AAFormat{\formatVarIntervals{"\afgraphName theHiddenRng.max"}}
- }]{\afgraphName theRng.max}{#2}{#3}%
-}
-\newcommand{\ttrngMax}[1]{\def\tt@rngMax{#1}}
-\ttrngMax{Enter the maximum value for the variable y}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \paragraph{The Domain parametric equations is to be graphed over.}
-% \begin{macro}{\domMinP}
-% \begin{macro}{\domMaxP}
-% The lower endpoint of the interval over which the function is graphed.
-% \begin{macrocode}
-\newcommand{\domMinP}[3][]{\makebox[0pt][l]{%
- \textField[\nuDV{\af@DefaultDomMint}\nuV{\af@DefaultDomMint}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenDom_t.min}{1bp}{1bp}}%
- \textField[\textSize{0}\nuV{\af@DefaultDomMint}
- \nuDV{\af@DefaultDomMint}\BC{0 0 0}\TU{\tt@domMinP}#1\AA{%
- \AAKeystroke{\keystrokeDomRng{"\afgraphName theHiddenDom_t.min"}}
- \AAFormat{\formatVarIntervals{"\afgraphName theHiddenDom_t.min"}}
- }]{\afgraphName theDom_t.min}{#2}{#3}%
-}
-\newcommand{\ttdomMinP}[1]{\def\tt@domMinP{#1}}
-\ttdomMinP{Enter the minimum value for the variable t}
-% \end{macrocode}
-% The upper endpoint of the interval over which the function is graphed.
-% \begin{macrocode}
-\newcommand{\domMaxP}[3][]{\makebox[0pt][l]{%
- \textField[\nuDV{\af@DefaultDomMaxt}\nuV{\af@DefaultDomMaxt}
- \F{\FHidden}\Ff{\FfReadOnly}
- ]{\afgraphName theHiddenDom_t.max}{1bp}{1bp}}%
- \textField[\textSize{0}\nuV{\af@DefaultDomMaxt}
- \nuDV{\af@DefaultDomMaxt}\BC{0 0 0}\TU{\tt@domMaxP}#1\AA{%
- \AAKeystroke{\keystrokeDomRng{"\afgraphName theHiddenDom_t.max"}}
- \AAFormat{\formatVarIntervals{"\afgraphName theHiddenDom_t.max"}}
- }]{\afgraphName theDom_t.max}{#2}{#3}%
-}
-\newcommand{\ttdomMaxP}[1]{\def\tt@domMaxP{#1}}
-\ttdomMaxP{Enter the maximum value for the variable t}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\formatVarIntervals}
-% \begin{macro}{\keystrokeDomRng}
-% These are format and keystroke functions that support the above
-% domain and range commands.
-% \begin{macrocode}
-\def\formatVarIntervals#1{%
- try{ formatVarIntervals(#1) } catch(e){};
-}
-\def\keystrokeDomRng#1{%
- if (event.willCommit) keystrokeDomRng(#1);
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \paragraph{The Number of points to plot.}
-% \begin{macro}{\numPoints}
-% \begin{macro}{\defaultNumPoints}
-% The number of points to use for plotting the specified function.
-% \begin{macrocode}
-\newcommand{\defaultNumPoints}[1]{%
- \def\af@defaultNumPoints{#1}}
-\defaultNumPoints{40}
-\newcommand\numPoints[3][]{%
- \textField[\nuV{\af@defaultNumPoints}\nuDV{\af@defaultNumPoints}
- \Q1\BC{0 0 0}\TU{\tt@numPoints}#1\AA{%
- \AAKeystroke{if (event.willCommit) keystrokeNumPoints();}}
- ]{\afgraphName numNodes}{#2}{#3}%
-}
-\newcommand{\ttnumPoints}[1]{\def\tt@numPoints{#1}}
-\ttnumPoints{Enter the number of points to plot}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \paragraph{Shifting the Graph Screen.}
-% In this section we provide basic control for shifting the graph screen up and down,
-% and left and right. Two new text fields are designed to set the amount of vertical
-% or horizontal shifting.
-%
-% \begin{macro}{\amtShift}
-% Use this text field to enter the amount of horizontal or vertical shift.
-%
-% We have the usual three parameters, optional argument to change the appearance,
-% the width of the form field, the height of the form field.
-% \begin{macrocode}
-\newcommand{\defaultShiftAmt}[1]{%
- \def\af@defaultShiftAmt{#1}}
-\defaultShiftAmt{1}
-\newcommand{\amtShift}[3][]{%
- \textField[\nuV{\af@defaultShiftAmt}\nuDV{\af@defaultShiftAmt}\Q1
- \BC{0 0 0}\TU{\tt@amtShift}#1\AA{\AAKeystroke{%
- if (event.willCommit) keystrokeAmtShift();
- }}]{\afgraphName amtshift}{#2}{#3}%
-}
-\newcommand{\ttamtShift}[1]{\def\tt@amtShift{#1}}
-\ttamtShift{Enter the amount to shift, horizontally or vertically}
-% \end{macrocode}
-% \end{macro}
-%
-% For the controls for initiating the shifting action, we can use forms or links. We'll begin
-% by using links.
-% \begin{macro}{\hShiftL}
-% \begin{macro}{\hShiftR}
-% \begin{macro}{\vShiftD}
-% \begin{macro}{\vShiftU}
-% Basic link to initiate the actions of shifting the viewing screen horizontally or vertically
-% an amount equal to the entries in \cs{amtShift}.
-% \begin{macrocode}
-\newcommand{\hShiftL}[2][]{%
- \setLinkText[#1\A{\JS{%
- shiftHorVert ("\afgraphName",this.pageNum,"h","-");
- }}]{#2}%
-}
-\newcommand{\hShiftR}[2][]{%
- \setLinkText[#1\A{\JS{%
- shiftHorVert ("\afgraphName",this.pageNum,"h","+");
- }}]{#2}%
-}
-\newcommand{\vShiftD}[2][]{%
- \setLinkText[#1\A{\JS{%
- shiftHorVert ("\afgraphName",this.pageNum,"v","-");
- }}]{#2}%
-}
-\newcommand{\vShiftU}[2][]{%
- \setLinkText[#1\A{\JS{%
- shiftHorVert ("\afgraphName",this.pageNum,"v","+");
- }}]{#2}%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \paragraph{The Zooming in and out.}
-% Coming fresh off the success of the horizontal and vertical shifting commands, let's plough
-% on to zooming in.
-% \begin{macro}{\zoomInOut}
-% This push button control zooms out, with a click, or zoom in with a shift-click.
-% \begin{macrocode}
-\newcommand{\zoomInOut}[3][]{%
- \pushButton[\BC{0 0 0}\CA{Zoom}\TU{\tt@zoomInOut}#1
- \A{\JS{%
- var shiftType = (event.shift) ? "+" : "-";\r
- zoomInOut ("\afgraphName",this.pageNum,shiftType);
- }}
- ]{\afgraphName zoominout}{#2}{#3}%
-}
-\newcommand{\ttzoomInOut}[1]{\def\tt@zoomInOut{#1}}
-\ttzoomInOut{Click to zoom out, shift-click to zoom in}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Non-Interactive Graphing}
-%
-% Use the \cs{setLinkText} command to pass a function name, the number of points, and domain/range
-% information to the graphing screen, without user input. This command is useful for tutorials
-% that would like to create a graph for the student to inspect, or as part of a quiz.
-% \begin{macro}{\sgraphLink}
-% The command \cs{sgraphLink} has four arguments, the first one is an optional argument
-% to modify the appearance of the link; the second argument consist of key-value pairs that
-% are options for the {\AcroFLeX} Graphing system; the third argument is the function of the
-% semi-colon delimited list of points to be plotted; the fourth argument is the text to be used
-% as the link.
-%\begin{verbatim}
-% \sgraphLink[<appearance>]{<graph_key_vals>}{func|points}{<text>}
-%\end{verbatim}
-%\paragraph{Options for the Second Parameter.} We define and briefly discuss
-% a series of keys for the second parameter.
-%
-% \begin{macrocode}
-% \end{macrocode}
-% \DescribeMacro{graph}
-% Curves and points are graphed on chart series. This system uses \texttt{LinearSeries},
-% \texttt{PlotSeries}, and \texttt{AreaSeries}. The {\AcroFLeX} graphing widget provides
-% four series for each of these three. Values of \texttt{c1}, \texttt{c2}, \texttt{c3}, \texttt{c4} for this key graphs the data
-% on a \texttt{LinearSeries}; values of \texttt{p1}, \texttt{p2}, \texttt{p3}, \texttt{p4} plot the data on a \texttt{PlotSeries};
-% and values of \texttt{a1}, \texttt{a2}, \texttt{a3}, \texttt{a4} graphs the data on a \texttt{AreaSeries}.
-% \begin{macrocode}
-\define@choicekey+{afsl}{graph}{c1,c2,c3,c4,p1,p2,p3,p4,%
- a1,a2,a3,a4}[c1]{\edef\afsl@graph{#1}}{\PackageWarning{acroflex}
- {Bad choice for the graph key, permissible values are
- c1, c2, c3,c4, p1, p2, p3, p4, a1, a2, a3, a4. Try again}}
-% \end{macrocode}
-% \DescribeMacro{type}
-% The type of curve this is, \texttt{cart} ($y=f(x)$), \texttt{para}
-% ($x=f(t); y=g(t)$), or \texttt{polar} ($r = f(t)$). When defining a polar function
-% using \cs{sgraphLink}, use \texttt{type=polar} to signal that the curve is a polar function.
-% \changes{v1.6c}{2016/08/29}{Set defaults for type and connectwith}
-% \begin{macrocode}
-\define@choicekey+{afsl}{type}{cart,para,polar}[cart]{%
- \edef\afsl@type{#1}}{\PackageWarning{acroflex}
- {Bad choice for the type key, permissible values are
- cart, para, and polar. Try again}}
-\let\afsl@type\@empty
-% \end{macrocode}
-% \DescribeMacro{connectwith}
-% When the graph is either a \texttt{LinearSeries} or an
-% \texttt{AreaSeries}, the points are connected. Use this key to
-% specify how the points are to be connected. The default values
-% for this key are as follows: for
-% \texttt{graph=cart} it is \texttt{connectwith=curve}, and for
-% \texttt{graph=para} it is \texttt{connectwith=segment}.
-% Use this key to override these defaults. For parametric equations,
-% \texttt{connectwith=curve} is not recommended, the results may not
-% be good. Use of this key is recommended for \texttt{graph=cart}.
-% \begin{macrocode}
-\define@choicekey+{afsl}{connectwith}{curve,segment}[curve]{%
- \edef\afsl@form{#1}}{\PackageWarning{acroflex}
- {Bad choice for the connectwith key, permissible values are
- curve and segment. Try again}}
-\let\afsl@form\@empty
-% \end{macrocode}
-% \DescribeMacro{noquotes}
-% This key is a workaround for the case when the function or data is passed by
-% JavaScript. Used when passing things that are already strings, such as \texttt{event.value}.
-% An example of usage can be found in \texttt{afgraph.tex}.
-% \begin{macrocode}
-\define@choicekey+{afsl}{noquotes}[\val\nr]{true,false}[true]{%
- \ifcase\nr\relax\def\af@quotes{}\or\def\af@quotes{"}\fi}
- {\PackageWarning{acroflex}
- {Bad choice for the noquotes key, permissible values are
- true and false. Try again}}
-% \end{macrocode}
-% \DescribeMacro{points}
-% Use this key to specify the number of points to generate from the function.
-% The key is ignored if \texttt{PlotSeries} is used, and should not appear, or be set to zero.
-% \begin{macrocode}
-\define@key{afsl}{points}[0]{\edef\afsl@nPoints{#1}}
-% \end{macrocode}
-% \DescribeMacro{xInterval}
-% An interval of numbers on the horizontal axis. This interval determines the
-% domain over which the function of $x$ is to be graphed. The endpoints of this
-% interval also determine the left and right boundaries of the viewing window.
-% \begin{macrocode}
-\define@key{afsl}{xInterval}[]{\edef\afsl@xInterval{#1}}
-% \end{macrocode}
-% \DescribeMacro{xPlot}
-% (10/11/09) Added the \texttt{xPlot} key. With the \texttt{xInterval} key, the interval over which to
-% plot the curve is bound to the scaling on the x-axis. It is now desired to plot
-% a graph over a smaller interval than the one on the x-axis, and \texttt{xPlot} will be used for
-% that purpose; thus one can say \verb!xInterval={[-2,2]},xPlot={[-1,0]}!. If \texttt{xPlot}
-% is not specified, then $\texttt{xPlot}=\texttt{xInterval}$.
-% \begin{macrocode}
-\define@key{afsl}{xPlot}[]{\edef\afsl@xPlot{#1}}
-% \end{macrocode}
-% \DescribeMacro{yInterval}
-% An interval of numbers on the vertical axis. The endpoints of this
-% interval also determine the lower and upper boundaries of the viewing window.
-% \begin{macrocode}
-\define@key{afsl}{yInterval}[]{\edef\afsl@yInterval{#1}}
-% \end{macrocode}
-% \DescribeMacro{tInterval}
-% An interval of numbers on the parameter axis. This interval determines the
-% domain over which a polar function and parametric equations are to be graphed.
-% \texttt{xInterval} and \texttt{yInterval} determines the viewing window.
-% \begin{macrocode}
-\define@key{afsl}{tInterval}[]{\edef\afsl@tInterval{#1}}
-% \end{macrocode}
-% \DescribeMacro{populate}
-% A Boolean value, which if \texttt{true}, signals \texttt{Graph\_xy()} or
-% \texttt{Graph\_xyt()} to populate the interactive field controls. When
-% no controls are provided for the graphing screen, populate should have a
-% value of \texttt{false}.
-% \begin{macrocode}
-\define@choicekey+{afsl}{populate}{true,false}[true]{%
- \edef\afsl@populate{#1}}{\PackageWarning{acroflex}
- {Bad choice for the populate key, permissible values are
- true and false. Try again}}
-% \end{macrocode}
-% \DescribeMacro{wait}
-% When using \cs{defineGraphJS} to create an action with multiple graph events,
-% use \texttt{wait=true}. This setting gives the {\AcroFLeX} graphing widget to
-% receive one set of plotting data before trying to digest another.
-% \begin{macrocode}
-\define@choicekey+{afsl}{wait}{true,false}[true]{%
- \edef\afsl@wait{#1}}{\PackageWarning{acroflex}
- {Bad choice for the wait key, permissible values are
- true and false. Try again}}
-% \end{macrocode}
-% \paragraph*{Set the defaults for all the keys.}
-% All changes are local to each link, so we set global defaults whose values
-% are not changed by the changes as a result of the passing key-value pairs
-% through \cs{sgraphLink}.
-% \begin{macrocode}
-\setkeys{afsl}{graph,points,xInterval,xPlot,yInterval,tInterval,%
- populate=false,type,connectwith,noquotes=false,wait=false}
-% \end{macrocode}
-% \begin{macro}{\sgraphLink}
-% We finally come to the \cs{sgraphLink}.
-% \begin{macrocode}
-\newcommand{\sgraphLink}[4][]{{%
- \defineGraphJS{#2}{#3}{\af@sglnkAction}%
- \setLinkText[#1\A{\JS{\af@sglnkAction}}]{#4}%
-}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\defineGraphJS}
-% The \cs{defineGraphJS} is the JS used to call the \texttt{Graph\_xy()} or \texttt{Graph\_xyt()}
-% JavaScript function defined in this package. It uses the same key-value pairs as the second
-% argument of \cs{sgraphLink}. The command can be used to construct links that graph several
-% curves (or plots) with a link or form action. It can be integrated into the exerquiz quizzing system,
-% using the new key \cs{AddAAKeystroke} of \cs{RespBoxMath}. The use of this key and this command is illustrated
-% in the \texttt{acroflex.tex} demo file.
-%\par\medskip\noindent
-% The \texttt* optional first parameter signals to use \cs{edef} in the subsequent command
-% \cs{af@defineGraphJS}.
-% \begin{macrocode}
-\newcommand{\defineGraphJS}{\@ifstar{\let\AF@exDEF\edef\af@defineGraphJS}
- {\let\AF@exDEF\xdef\af@defineGraphJS}}
-% \end{macrocode}
-% We continue \cs{defineGraphJS}: The first parameter are key-values of the
-% \texttt{afsl} family; the second parameter is the function; the third is the
-% name to assign the command being defined.
-% modify the appearance of the link; the second parameter
-% \begin{macrocode}
-\newcommand{\af@defineGraphJS}[3]{{\makeJSspecials
- \edef\af@tmp@exp{\noexpand\setkeys{afsl}{#1}}\af@tmp@exp
- \ifx\afsl@xPlot\@empty\let\afsl@xPlot\afsl@xInterval\fi
- \AF@exDEF#3{Graph_xytJS (\af@quotes#2\af@quotes,"\afsl@xInterval",%
- "\afsl@yInterval","\afsl@xPlot","\afsl@tInterval","\afsl@graph",%
- \afsl@populate,\afsl@wait,"\afsl@type","\afsl@form","\afgraphName",%
- \afsl@nPoints)}%
-}}
-% \end{macrocode}
-% \end{macro}
-%
-% \section{Document JS in Support of \texorpdfstring{\protect\AcroFLeX}{AcroFleX}}
-%
-% Below are some text macros used in creating error messages. They may be redefined
-% into better English, or another language. Use the definition file \texttt{afcustom.def}
-% to make these re-definitions.
-% \begin{macrocode}
-\defineJSStr{\af@badNumberMsg}{%
- The value input does not appear to be a number, please enter a
- number, or an expression that evaluates to a number.}
-\defineJSStr{\af@negNumberMsg}{%
- The number of points is a positive integer, changing to a
- positive integer.}
-\defineJSStr{\af@zeroNumberMsg}{%
- The number of points is a positive integer, changing to the
- default value of \af@defaultNumPoints.}
-\defineJSStr{\af@negShiftMsg}{%
- The amount of shift is a positive number, changing to a positive
- number.}
-\defineJSStr{\af@zeroShiftMsg}{%
- The amount of shift is a positive number, changing to the
- default value of 1.}
-\defineJSStr{\af@saveDelSelAlerti}{%
- There is nothing in the function input text field.}
-\defineJSStr{\af@saveDelSelAlertii}{%
- You have not defined any points to plot}
-\defineJSStr{\af@graphBtnAlerti}{Undefined graph types}
-% \end{macrocode}
-% \begin{macrocode}
-\begin{insDLJS*}[acroflexLoaded]{afgrfJS}
-\begin{newsegment}{AF: AcroFLeX Graphing Bundle}
-/*
- Document Level JavaScript
- AcroFLeX Graphing Bundle
- D. P. Story copyright 2008-\the\year
-*/
-var acroflexLoaded = true;
-var _mathVars="xt";
-var aGraphData = new Array();
-var ck4PtsRe = /\(.+,.+\)/;
-var badNumberMsg=\af@badNumberMsg;
-var negNumberMsg=\af@negNumberMsg;
-var zeroNumberMsg=\af@zeroNumberMsg;
-var negShiftMsg=\af@negShiftMsg;
-var zeroShiftMsg=\af@zeroShiftMsg;
-var saveDelSelAlerti=\af@saveDelSelAlerti;
-var saveDelSelAlertii=\af@saveDelSelAlertii;
-var graphBtnAlerti=\af@graphBtnAlerti;
-var scratchCounter=0;
-var aTimeOutArray = new Array();
-var afSuffixes = new Array("ComboSelect","theFunction",
- "amtShift","theDom","theRng", "theDom_t",
- "Rng_t","numNodes");
-\end{newsegment}
-\begin{newsegment}{AF: Graphing Functions}
-% \end{macrocode}
-% \DescribeMacro{Graph\_xy} Graphs a function of a single variable in the rectangular
-% coordinate system.
-%
-% The \texttt{Graph\_xy} function takes four or more arguments. In interactive
-% mode, it takes four.
-%\begin{enumerate}
-% \item \texttt{graph\_props}: (Needs Revision) This is a signal for the type of graphing requested.
-% \texttt{c1,...,c4} for continuous plotting; and \texttt{p1,...,p4} for discrete
-% plotting. There are four of these types.
-% \item \texttt{baseName}: The base name of the graphing environment. This is used to
-% build the field names for the controls, if any, on the page.
-% \item \texttt{pNum}: The page number of the target rich media annot. This together
-% with \texttt{baseName} is enough information to get the AnnotRichMedia object using
-% the \texttt{Doc.AnnotRichMedia} method.
-%\end{enumerate}
-% When in interactive mode, we get the function to be graphed, the domain of $x$
-% the range of $y$, and the number of points to plot from form fields.
-% \begin{itemize}
-% \item The function is input by the user into the field \texttt{baseName+"theFunction"},
-% but we get the JS version from \texttt{baseName+"theHiddenFunction"}.
-% When the user enters a function, it is parsed, and changed into a proper JS
-% expression: \verb!2x^2sin(x)! becomes \verb!2*Math.pow(x,2)*Math.sin(x)!.
-%
-% \item The domain and range values are input by the user through the fields, having field names of
-% \texttt{baseName+"theDom.min"}, \texttt{baseName+"theDom.max"}, \texttt{baseName+"theRng.min"},
-% and \texttt{baseName+"theRng.max"}, but we retrieve the values from hidden fields.
-% See \texttt{getDomRng} below for the listing of the hidden fields.
-% When the user enters domain/range info, this info is parsed and made into
-% property JS expressions. In this way, the user can enter symbolics like \texttt{PI}
-% or \texttt{sin(PI/3)}, or do arithmetic, like \texttt{2 + 1/3}.
-%
-% \item The number of points to plot is obtained from \texttt{baseName+"numNodes"},
-% no preprocessing is used.
-%
-% \end{itemize}
-%
-% \noindent When the number of arguments is greater than four, we are in non-interactive
-% mode. The 5th argument is the JS function to graph; the 6th is the number of
-% points to plot; the 7th is an object containing the domain
-%
-% \paragraph{Notes on the Modes.} There are three modes of operation: interactive, populate,
-% and silent.
-%\begin{itemize}
-% \item \textbf{Interactive:} This occurs when the user enters a
-% function through the UI. In this case the number of arguments
-% passed to \texttt{Graph\_xy} (or \texttt{Graph\_xyt}) is only four.
-% The number of \texttt{arguments} is determined by the arguments
-% object, and the switch \texttt{afInteractive} is set to
-% \texttt{true}. For this mode
-%
-% The following controls are \emph{required}: \cs{fileInputField},
-% \cs{graphBtn}, \cs{domMin}, \cs{domMax}, \cs{rngMin}, \cs{rngMax},
-% and \cs{numPoints}. If parametric or polar graphs are to be used,
-% then \cs{domMinP} and \cs{domMaxP} are also required. The other
-% controls are \emph{optional}, \cs{graphClrBtn} (recommended),
-% \cs{amtShift} (and \cs{hShiftL},
-% \cs{hShiftR},\cs{vShiftD},\cs{vShiftU}) and \cs{zoomInOut}.
-%
-% \item \textbf{Populate:} This mode occurs when the graphing parameters
-% are passed to \texttt{Graph\_xy} (or \texttt{Graph\_xyt}) by \cs{sgraphLink}
-% (or some other command). All the essential information is passed as arguments,
-% so the number of arguments is greater than four. The command initiating the
-% graphing should set the \texttt{graph\_props.populate} to \texttt{true}. In this
-% case the graphing data populate the required fields and the graph will be drawn.
-% It is the document author's responsibility to only use populate on graphing screens
-% that have all the required control fields. \texttt{Graph\_xy} (and \texttt{Graph\_xyt})
-% checks the value of the \texttt{graph\_props.populate} property, and sets the switch
-% \texttt{populate} to \texttt{true}.
-%
-% Populate behave exactly like interactive, but the graphing data is passed to it in pre-packaged
-% for my the document author; the user, however, can manipulate the curve once it appears.
-%
-% The required controls are the same as the interactive mode.
-%
-% \item \textbf{Silent:} This is a non-interactive mode, there must be no controls other than
-% \cs{graphClrBtn}. Basically, the author prepares some pre-packaged graphs to be displayed
-% to the user, without interaction. These may go along with a tutorial discussion symmetry,
-% periodicity, tangent lines, etc.
-%
-%\end{itemize}
-% \begin{macrocode}
-function Graph_xy(graph_props, baseName, pNum)
-{
- _mathVars="x";
- var afInteractive = (arguments.length <= 3);
- if (afInteractive) {
- var f = this.getField(baseName+"theHiddenFunction").value;
-% \end{macrocode}
-% If the file input field does not contain a Cartestian point $(a,b)$,
-% but it does contain a semi-colon, we figure what is entered is a
-% set of parametric equations.
-% \begin{macrocode}
- if ( !ck4PtsRe.test(f) && (f.indexOf(";")!=-1) ) {
- var dt = this.getField(baseName+"theDom_t.min");
- if ( dt == null ) {
- syntaxError(); return;
- }
- Graph_xyt(graph_props, baseName, pNum);
- return;
- }
- f = this.getField(baseName+"theHiddenFunction").value;
- }
- createGraphData(baseName);
- var which_graph=graph_props.graph;
- var populate = false;
- graph_props.type="cart";
- var aWhichGraph=/(c|p|a)(\d)/.exec(which_graph);
- if ( aWhichGraph==null ) aWhichGraph=["","c","1"];
- var isGraph = (aWhichGraph[1]=="c" || aWhichGraph[1]=="a");
- var connectPoints=false;
- var plotPoints=false;
- var wait = false;
- switch(aWhichGraph[1]) {
- case "p":
- var which_series="p"+aWhichGraph[2];
- plotPoints=true;
- break;
- case "a":
- var which_series="a"+aWhichGraph[2];
- break;
- default:
- var which_series="c"+aWhichGraph[2];
- }
- graph_props.graph=which_series;
-% \end{macrocode}
-% Get domain and range of x and y, respectively
-% obtain in math environment so we can evaluate
-% any symbolic constants, such as \texttt{Math.PI}
-% \begin{macrocode}
- if (afInteractive) var oDR = getDomRng (baseName);
- else {
- wait=graph_props.wait;
- populate = graph_props.populate;
- var oDR = arguments[5];
- if (populate) populateDomRng(baseName,oDR);
- for ( var o in oDR ) oDR[o] = EvalParse(oDR[o]);
- }
- aGraphData[baseName].aDomRngs = oDR;
-% \end{macrocode}
-% calculate width of intervals. If the user has passed a subinterval to us, then
-% \texttt{oDR.x\_min} would be defined, and we use it to compute the range.
-% \begin{macrocode}
- var rng_x = (typeof oDR.x_u=="undefined") ?
- (oDR.x_max - oDR.x_min) : (oDR.x_u - oDR.x_l);
- /* Get the function and calculated the plotted points */
- if (afInteractive) {
- var n = Number(this.getField(baseName+"numNodes").value);
- if ( isNaN(n) || n <=0 ) n = \af@defaultNumPoints;
- } else {
- var f = ParseInput(arguments[2+1]);
- var n = Number(arguments[2+2]);
- if (populate) {
- this.getField(baseName+"theFunction").value=arguments[2+1];
- this.getField(baseName+"numNodes").value=n;
- }
- if (isGraph) {
-% \end{macrocode}
-% Is there a function there? We use n to determine
-% that, if $n > 0$ we assume a function; otherwise, we
-% assume plotted points to be connected.
-% \begin{macrocode}
- connectPoints = ( n <= 0 );
- if ( connectPoints ) plotPoints = true;
- // passing points to be plotted, not connected
- } else plotPoints = true;
- }
-% \end{macrocode}
-% Before we calculate the points, let's record what we are graphing.
-% \begin{macrocode}
- if (afInteractive || populate)
- updateGraphData(graph_props,baseName,f);
-% \end{macrocode}
-% Now we begin calculating the points to plot.
-% \begin{macrocode}
- var plot_x, plot_y;
- var x = (typeof oDR.x_u=="undefined") ? oDR.x_min : oDR.x_l;
- var h = rng_x / n;
- var thismax = (typeof oDR.x_u=="undefined") ? oDR.x_max : oDR.x_u;
-% \end{macrocode}
-% The plotted data will be accumulated as XML
-% \begin{macrocode}
- var cPlotData=<points></points>;
-% \end{macrocode}
-% We strip out anything of the form \texttt{"y = "}, \texttt{"x = "} or \texttt{"r = "},
-% allowing the user to enter the expressions in equational form \verb!"y = x^2"!, for example.
-% \begin{macrocode}
- var aSearchResults=/(([a-zA-Z])\s*=\s*)/.exec(f);
- if ( aSearchResults != null) {
- if ( aSearchResults[2] != "y" && aSearchResults[2] != "r" ) {
- syntaxError(); return;
- }
- }
-% \end{macrocode}
-% This allows functions of the form $y=f(x)$, $r=f(x)$, $y=f(t)$, $r=f(t)$.
-% \begin{macrocode}
- f = f.replace(/(([a-zA-Z])\s*=\s*)/g,"");
-% \end{macrocode}
-% \begin{macrocode}
- if ( isGraph && !plotPoints ) {
- for (var i=0; i<=n; i++)
- {
-% \end{macrocode}
-% We evaluate the function, and try to detect any errors. If an exception is thrown,
-% we display an \textsf{exerquiz} \texttt{syntaxError()} message. If the result is not
-% a number, we skip over it.
-% \begin{macrocode}
- try { with(Math) {_y = eval(f);} }
- catch(e) {
-% \end{macrocode}
-% We have thrown an exception, so either this is bad code, or the user wants us
-% to plot this as a polar function. We'll try, but if we're wrong, we'll throw an
-% exception in \texttt{Graph\_xyt()}.
-% \begin{macrocode}
- var paraEqs = "("+f+")*Math.cos(t);("+f+")*Math.sin(t)";
- graph_props.type="polar";
- this.getField(baseName
- +"theHiddenFunction").value=paraEqs;
- Graph_xyt(graph_props, baseName, pNum);
- return;
- }
- // If not a number then skip over.
- if (isFinite(_y))
- {
- plot_x = util.printf("\%.10f", x);
- plot_y = util.printf("\%.10f", _y);
-% \end{macrocode}
-% We add the latest data point to the end of the XMList
-% \begin{macrocode}
- cPlotData.points[cPlotData..point.length()]=
- <point><x>{plot_x}</x><y>{plot_y}</y></point>
- }
- x += h;
- }
- } else { // prepare to data for plotting
-% \end{macrocode}
-% At this point the variable f should be a string of
-% points to plot.\\
-% \hspace*{30pt}\texttt{f = "(0,1);(2,2);(4,2);...;(5,3)"}.\\
-% It's not clear whether the abcissas need to be sorted in
-% increasing order, or whether FLEX is smart enough to do
-% that. We'll assume the latter case.
-% \begin{macrocode}
- var afBegin = (f.indexOf("\(")+1);
- var afEnd = f.lastIndexOf("\)");
- cPlotData=f.substring(afBegin,afEnd);
- var re = /\)\s*;\s*\(/;
- aPlotData= cPlotData.split(re);
- var cPlotData=<points></points>;
- with (Math) {
- for ( var i=0; i<aPlotData.length; i++) {
- var cTmp = "["+aPlotData[i]+"]";
- var aTmp = eval(cTmp);
-% \end{macrocode}
-% We add the latest data point to the end of the XMList
-% \begin{macrocode}
- cPlotData.points[cPlotData..point.length()]=
- <point><x>{aTmp[0]}</x><y>{aTmp[1]}</y></point>
- }
- }
- }
- cPlotData=cPlotData.toXMLString();
- var annot = this.getAnnotRichMedia(pNum,"afRM"+baseName);
- if ( annot )
- {
- if (!annot.activated || wait ) {
- annot.activated=true;
- afWait4Activation(
- graph_props,baseName,pNum,oDR,cPlotData,50);
- }
- else
- annot.callAS("getPlotData", graph_props, oDR, cPlotData);
- }
-}
-% \end{macrocode}
-% \DescribeMacro{Graph\_xyt} This function graphs a set of parametric equations in the
-% rectangular coordinate system. The function pair is delimited by a semi-colon, early
-% in the code we get the function and test whether the function has a semi-colon in its
-% definition, so not, we send assume it is a function of a single variable, and send it
-% off to \texttt{Graph\_xy}.
-%
-% For silent mode, the parameters are the same, except that there are two extra arguments,
-% the endpoints of the parameter, $t$. The last argument is a Boolean, the author wants the
-% graphing data to populate the corresponding fields so user can manipulate.
-% \begin{macrocode}
-function Graph_xyt(graph_props, baseName, pNum)
-{
- _mathVars="t";
- var which_graph=graph_props.graph;
- var populate = false;
- var afInteractive = (arguments.length <= 3);
- if (afInteractive) {
- var f = this.getField(baseName+"theHiddenFunction").value;
- if ( ck4PtsRe.test(f) || (f.indexOf(";")==-1) ) {
- Graph_xy(graph_props, baseName, pNum);
- return;
- }
- f = this.getField(baseName+"theHiddenFunction").value;
- }
- createGraphData(baseName);
- if ( graph_props.type!="polar") graph_props.type="para";
- var aWhichGraph=/(c|p|a)(\d)/.exec(which_graph);
- if ( aWhichGraph==null ) aWhichGraph=["","c","1"];
- var isGraph = (aWhichGraph[1]=="c" || aWhichGraph[1]=="a");
- var connectPoints=false;
- var plotPoints=false;
- var wait=false;
- switch(aWhichGraph[1]) {
- case "p":
- var which_series="p"+aWhichGraph[2];
- plotPoints=true;
- break;
- case "a":
- var which_series="a"+aWhichGraph[2];
- break;
- default:
- var which_series="c"+aWhichGraph[2];
- }
- graph_props.graph=which_series;
-% \end{macrocode}
-% Get domain and range of x and y, respectively
-% obtain in math environment so we can evaluate
-% any symbolic constants, such as \texttt{Math.PI}
-% \begin{macrocode}
- if (afInteractive) {
- var oDR = getDomRng (baseName);
- var oDp = getParaDom (baseName);
- }
- else {
- wait=graph_props.wait;
- populate = graph_props.populate;
- var oDR = arguments[5];
- if (populate) populateDomRng(baseName,oDR);
- for ( var o in oDR ) oDR[o] = EvalParse(oDR[o]);
- var oDp = arguments[6];
- if (populate) populateParaDom(baseName,oDp);
- for ( var o in oDp ) oDp[o] = EvalParse(oDp[o]);
- }
- aGraphData[baseName].aDomRngs = oDR;
- aGraphData[baseName].aDom_P = oDp;
-% \end{macrocode}
-% calculate width of intervals
-% \begin{macrocode}
- var rng_t = oDp.t_max - oDp.t_min;
- /* Get the function and calculated the plotted points */
- if (afInteractive) {
- var n = Number(this.getField(baseName+"numNodes").value);
- if ( isNaN(n) || n <=0 ) n = \af@defaultNumPoints;
- } else {
-% \end{macrocode}
-% If this is polar, then we need to check if it has been parsed yet.
-% \begin{macrocode}
- var f = arguments[2+1];
- if ( graph_props.type=="polar") {
- if(f.indexOf(";")==-1) {
- f = "("+f+")*cos(t);("+f+")*sin(t)";
- f = ParseInput(f);
- }
- } else
- f = ParseInput(f);
- var n = Number(arguments[2+2]);
- if (populate) {
- this.getField(baseName+"theHiddenFunction").value=f;
- this.getField(baseName+"theFunction").value=arguments[2+1];
- this.getField(baseName+"numNodes").value=n;
- }
- if (isGraph) {
-% \end{macrocode}
-% Is there a function there? We use n to determine
-% that, if $n > 0$ we assume a function; otherwise, we
-% assume plotted points to be connected.
-% \begin{macrocode}
- connectPoints = ( n <= 0 );
- if ( connectPoints ) plotPoints = true;
- // passing points to be plotted, not connected
- } else plotPoints = true;
- }
-% \end{macrocode}
-% Before we calculate the points, let's record what we are graphing.
-% \begin{macrocode}
- if (afInteractive || populate)
- updateGraphData(graph_props,baseName,f);
-% \end{macrocode}
-% We strip out anything of the form \texttt{"y = "}, \texttt{"x = "} or \texttt{"r = "},
-% allowing the user to enter the expressions in equational form \texttt{"r = 1+sin(t)"},
-% or \texttt{x=sin(t); y = cos(t)}, for example.
-% \begin{macrocode}
- var aFunction = f.split(";");
- var x_function = aFunction[0];
- var y_function = aFunction[1];
- var aSearchResults=/(([a-zA-Z])\s*=\s*)/.exec(x_function);
- if ( aSearchResults != null && aSearchResults[2] != "x") {
- syntaxError(); return;
- }
- x_function = x_function.replace(/(([a-zA-Z])\s*=\s*)/g,"");
- aSearchResults=/(([a-zA-Z])\s*=\s*)/.exec(y_function);
- if ( aSearchResults != null && aSearchResults[2] != "y") {
- syntaxError(); return;
- }
- y_function = y_function.replace(/(([a-zA-Z])\s*=\s*)/,"");
- var plot_x, plot_y;
- var t = oDp.t_min;
- var h = rng_t / n;
- var thismax = oDp.t_max;
-% \end{macrocode}
-% The plotted data will be accumulated as XML
-% \begin{macrocode}
- var cPlotData=<points></points>;
-% \end{macrocode}
-% \begin{macrocode}
- if ( isGraph && !plotPoints ) {
- for (var i=0; i<=n; i++)
- {
-% \end{macrocode}
-% We evaluate the function, and try to detect any errors. If an exception is thrown,
-% we display an \textsf{exerquiz} \texttt{syntaxError()} message. If the result is not
-% a number, we skip over it.
-% \begin{macrocode}
- try {
- with(Math) {
- _x = eval(x_function);
- _y = eval(y_function);
- }
- } catch(e) { syntaxError(); return;}
- // If not a number then skip over.
- if (isFinite(_x)&&isFinite(_y))
- {
- plot_x = util.printf("\%.10f", _x);
- plot_y = util.printf("\%.10f", _y);
-% \end{macrocode}
-% We add the latest data point to the end of the XMList
-% \begin{macrocode}
- cPlotData.points[cPlotData..point.length()]=
- <point><x>{plot_x}</x><y>{plot_y}</y></point>
- }
- t += h;
- }
- } else { // prepare to data for plotting
-% \end{macrocode}
-% At this point the variable f should be a string of
-% points to plot.\\
-% \hspace*{30pt}\texttt{f = "(0,1);(2,2);(4,2);...;(5,3)"}.\\
-% It's not clear whether the abcissas need to be sorted in
-% increasing order, or whether FLEX is smart enough to do
-% that. We'll assume the latter case.
-% \begin{macrocode}
- var afBegin = (f.indexOf("\(")+1);
- var afEnd = f.lastIndexOf("\)");
- cPlotData=f.substring(afBegin,afEnd);
- var re = /\)\s*;\s*\(/;
- aPlotData= cPlotData.split(re);
- var cPlotData=<points></points>;
- with (Math) {
- for ( var i=0; i<aPlotData.length; i++) {
- var cTmp = "["+aPlotData[i]+"]";
- var aTmp = eval(cTmp);
-% \end{macrocode}
-% We add the latest data point to the end of the XMList
-% \begin{macrocode}
- cPlotData.points[cPlotData..point.length()]=
- <point><x>{aTmp[0]}</x><y>{aTmp[1]}</y></point>
- }
- }
- }
- cPlotData=cPlotData.toXMLString();
- var annot = this.getAnnotRichMedia(pNum,"afRM"+baseName);
- if ( annot )
- {
- if (!annot.activated || wait ) {
- annot.activated=true;
- afWait4Activation(
- graph_props,baseName,pNum,oDR,cPlotData,50);
- }
- else
- annot.callAS("getPlotData", graph_props, oDR, cPlotData);
- }
-}
-function createGraphData(baseName)
-{
- if( aGraphData[baseName] == undefined ) {
- aGraphData[baseName] = new Object();
- aGraphData[baseName].aDomRngs=new Object();
- aGraphData[baseName].aDom_P=new Object();
- aGraphData[baseName].current = new Array();
- }
-}
-% \end{macrocode}
-% This function is called by the \texttt{Graph\_xy} or \texttt{Graph\_xyt}
-% and updates the graphing data we are trying to track.
-%
-% Properties of the object
-% \verb!aGraphData[baseName].current[which_graph]! object are
-% \texttt{hiddenFN} (a string of the hidden JS version of the
-% function), \texttt{appearFN} (a string of the function the user
-% sees), and \texttt{graph\_props} (the graph properties passed from
-% \texttt{Graph\_xy} or \texttt{Graph\_xyt}.
-% \begin{macrocode}
-function updateGraphData(graph_props,baseName,f)
-{
- var which_graph=graph_props.graph;
- if (aGraphData[baseName].current[which_graph] == undefined)
- aGraphData[baseName].current[which_graph]=new Object();
- aGraphData[baseName].current[which_graph].appearFN
- =this.getField(baseName+"theFunction").value;
- aGraphData[baseName].current[which_graph].hiddenFN=f;
- aGraphData[baseName].current[which_graph].graph_props=graph_props;
-}
-\end{newsegment}
-% \end{macrocode}
-% When there are more than three arguments, we are in non-interactive mode.
-% The 4th-7th arguments are the domain and range that the graph should be
-% set to on reset.
-%
-% In the flash widget, we call the function \texttt{clearPlotData}, the parameters
-% of which are
-%\begin{verbatim}
-% clearPlotData(graph_props:Object, oDR:Object)
-%\end{verbatim}
-% \begin{macrocode}
-\begin{newsegment}{AF: Supporting Form Fields}
-function clearGraph(graph_opts,baseName, pNum)
-{
- which_graph=graph_opts.graph;
- var aWhichGraph=/(c|p|a)(\d)/.exec(which_graph);
- if ( aWhichGraph==null ) aWhichGraph=["","c","1"];
- var isGraph = (aWhichGraph[1]=="c" || aWhichGraph[1]=="a");
- switch(aWhichGraph[1]) {
- case "p":
- var which_series="p"+aWhichGraph[2];
- break;
- case "a":
- var which_series="a"+aWhichGraph[2];
- break;
- default:
- var which_series="c"+aWhichGraph[2];
- }
- ProcessIt = false;
- afResetForms = new Array ();
- for (var i=0; i<afSuffixes.length; i++)
- afResetForms.push(baseName+afSuffixes[i]);
- this.resetForm(afResetForms);
- ProcessIt = true;
-% \end{macrocode}
-% Now reset the array of graphs plotted.
-% \begin{macrocode}
- if ( aGraphData[baseName] == undefined ) return;
- try { aGraphData[baseName].current = new Array(); } catch(e) {}
- var oDR = getDomRng (baseName);
- var annot = this.getAnnotRichMedia(pNum,"afRM"+baseName);
- if ( annot )
- {
- annot.callAS("clearPlotData", {graph:"all"}, oDR);
- }
- if (event.shift) annot.activated=false;
-}
-function stripBrackets(aStr) {
- var afBegin = (aStr.indexOf("[")+1);
- var afEnd = aStr.lastIndexOf("]");
- aStr= aStr.substring(afBegin,afEnd);
- return aStr;
-}
-function EvalParse(str) {
- return eval(ParseInput(String(str)));
-}
-function getDomRng (baseName)
-{
- var x_min, x_max, y_min, y_max;
- if ( baseName == null )
- return { x_min: \af@DefaultDomMin, y_min: \af@DefaultRngMin,
- x_max: \af@DefaultDomMax, y_max: \af@DefaultRngMax };
- var f = this.getField(baseName+"theHiddenDom.min");
- if ( f == null ) {
- f = aGraphData[baseName].aDomRngs;
- if ( f == null )
- aGraphData[baseName].aDomRngs = {
- x_min: \af@DefaultDomMin, y_min: \af@DefaultRngMin,
- x_max: \af@DefaultDomMax, y_max: \af@DefaultRngMax };
- } else {
- x_min=eval(this.getField(baseName+"theHiddenDom.min").value);
- x_max=eval(this.getField(baseName+"theHiddenDom.max").value);
- y_min=eval(this.getField(baseName+"theHiddenRng.min").value);
- y_max=eval(this.getField(baseName+"theHiddenRng.max").value);
- aGraphData[baseName].aDomRngs={
- x_min: x_min, y_min: y_min,
- x_max: x_max,y_max: y_max };
- }
- return aGraphData[baseName].aDomRngs;
-}
-function populateDomRng(baseName,oDR)
-{
- try{this.getField(baseName+"theDom.min").value=oDR.x_min}catch(e){};
- try{this.getField(baseName+"theDom.max").value=oDR.x_max}catch(e){};
- try{this.getField(baseName+"theRng.min").value=oDR.y_min}catch(e){};
- try{this.getField(baseName+"theRng.max").value=oDR.y_max}catch(e){};
-}
-function getParaDom (baseName)
-{
- var t_min, t_max;
- if ( baseName == null )
- return { t_min: \af@DefaultDomMint, t_max: \af@DefaultDomMaxt };
- var f = this.getField(baseName+"theHiddenDom_t.min");
- if ( f == null ) {
- f = aGraphData[baseName].aDom_P;
- if ( f == null )
- aGraphData[baseName].aDom_P = {
- t_min: \af@DefaultDomMint,
- t_max: \af@DefaultDomMaxt };
- } else {
- t_min=eval(this.getField(baseName+"theHiddenDom_t.min").value);
- t_max=eval(this.getField(baseName+"theHiddenDom_t.max").value);
- aGraphData[baseName].aDom_P={ t_min: t_min, t_max: t_max };
- }
- return aGraphData[baseName].aDom_P;
-}
-function populateParaDom(baseName,oDp)
-{
- try{this.getField(baseName+"theDom_t.min").value=oDp.t_min}
- catch(e){};
- try{this.getField(baseName+"theDom_t.max").value=oDp.t_max}
- catch(e){};
-}
-function afWait4Activation (graph_props, baseName, pNum,%
-oDR, cPlotData, delay) {
- var annotName = "afRM"+baseName;
- scratchCounter += 1;
- aTimeOutArray[scratchCounter] = app.setTimeOut(%
-'this.getAnnotRichMedia('+pNum+',"'
- +annotName+'").callAS("getPlotData",'
- + 'aTimeOutArray['+scratchCounter+'].graph_props,'
- + 'aTimeOutArray['+scratchCounter+'].oDR,'
- + 'aTimeOutArray['+scratchCounter+'].cPlotData)',50);
- aTimeOutArray[scratchCounter].graph_props=graph_props;
- aTimeOutArray[scratchCounter].oDR=oDR;
- aTimeOutArray[scratchCounter].cPlotData=cPlotData;
-}
-function shiftHorVert (baseName,pNum,horVert,posNeg) {
- var amtShift=baseName+"amtshift";
- if ( horVert=="h" ) {
- var LEP = baseName+"theDom.min";
- var UEP= baseName+"theDom.max";
- } else {
- var amtShift=baseName+"amtshift";
- var LEP = baseName+"theRng.min";
- var UEP= baseName+"theRng.max";
- }
- var amtSft=this.getField(amtShift).value
- amtSft=EvalParse(amtSft);
- var gf_l=this.getField(LEP);
- var gfv_l=Number(EvalParse(gf_l.value));
- gf_l.value = (posNeg=="+") ?
- (gfv_l+(Math.abs(amtSft))) : (gfv_l-(Math.abs(amtSft)));
- gf_u=this.getField(UEP);
- gfv_u=Number(EvalParse(gf_u.value));
- gf_u.value = (posNeg=="+") ?
- (gfv_u+(Math.abs(amtSft))) : (gfv_u-(Math.abs(amtSft)));
- var g = aGraphData[baseName].aDomRngs;
- var oPts = this.getField(baseName+"numNodes");
- var nPts = ( oPts == null ) ? \af@defaultNumPoints : oPts.value;
- if ( horVert=="h" ) {
- g.x_min=gf_l.value;g.x_max=gf_u.value;
- } else {
- g.y_min=gf_l.value;g.y_max=gf_u.value;
- }
- var p = aGraphData[baseName].aDom_P;
- for ( var o in aGraphData[baseName].current )
- {
- var gd = aGraphData[baseName].current[o];
- gd.graph_props.populate=true;
- if ( gd.graph_props.type=="cart" ) {
- Graph_xy(gd.graph_props,baseName,pNum,
- gd.appearFN,nPts,g);
- } else { // gd.graph_props.type=="para"
- Graph_xyt(gd.graph_props,baseName,pNum,
- gd.appearFN,nPts,g,p);
- }
- }
-}
-function zoomInOut (baseName,pNum,posNeg) {
- var amtShift=baseName+"amtshift";
- var g = aGraphData[baseName].aDomRngs;
- var oPts = this.getField(baseName+"numNodes");
- var nPts = ( oPts == null ) ? \af@defaultNumPoints : oPts.value;
-// Begin horizontal calculations
- var LEP = baseName+"theDom.min";
- var UEP= baseName+"theDom.max";
- var amtSft=this.getField(amtShift).value
- amtSft=EvalParse(amtSft);
- var gf_l=this.getField(LEP);
- var gfv_l=Number(EvalParse(gf_l.value));
- gf_l.value = (posNeg=="+") ?
- (gfv_l+(Math.abs(amtSft))) : (gfv_l-(Math.abs(amtSft)));
- gf_u=this.getField(UEP);
- gfv_u=Number(EvalParse(gf_u.value));
- gf_u.value = (posNeg=="+") ?
- (gfv_u-(Math.abs(amtSft))) : (gfv_u+(Math.abs(amtSft)));
-% \end{macrocode}
-% Update the \texttt{aGraphData[baseName].aDomRngs} object for horizontal parameters
-% \begin{macrocode}
- g.x_min=gf_l.value;
- g.x_max=gf_u.value;
-// Begin vertical calculations
- var LEP = baseName+"theRng.min";
- var UEP= baseName+"theRng.max";
- var gf_l=this.getField(LEP);
- var gfv_l=Number(EvalParse(gf_l.value));
- gf_l.value = (posNeg=="+") ?
- (gfv_l+(Math.abs(amtSft))) : (gfv_l-(Math.abs(amtSft)));
- gf_u=this.getField(UEP);
- gfv_u=Number(EvalParse(gf_u.value));
- gf_u.value = (posNeg=="+") ?
- (gfv_u-(Math.abs(amtSft))) : (gfv_u+(Math.abs(amtSft)));
-% \end{macrocode}
-% Update the \texttt{aGraphData[baseName].aDomRngs} object for vertical parameters
-% \begin{macrocode}
- g.y_min=gf_l.value;
- g.y_max=gf_u.value;
- var p = aGraphData[baseName].aDom_P;
- for ( var o in aGraphData[baseName].current )
- {
- var gd = aGraphData[baseName].current[o];
- if ( gd.graph_props.type=="cart" ) {
- Graph_xy(gd.graph_props,baseName,pNum,
- gd.appearFN,nPts,g);
- } else { // gd.graph_props.type=="para"
- Graph_xyt(gd.graph_props,baseName,pNum,
- gd.appearFN,nPts,g,p);
- }
- }
-}
-function saveDelSelAction (baseName)
-{
- var f = this.getField(baseName+"theFunction");
- var s = this.getField(baseName+"ComboSelect");
- if ( f != null && s != null ) {
- var nIndx = s.currentValueIndices;
- var cExportV=s.getItemAt(s.currentValueIndices,true);
- var cAppearV=s.getItemAt(s.currentValueIndices,false);
- if (event.shift) {
- s.deleteItemAt(s.currentValueIndices);
- s.insertItemAt(cAppearV,("<"+cAppearV+"\afunused>"),nIndx);
- s.currentValueIndices=nIndx;
- f.value="<"+cAppearV+"\afunused>";
- } else {
- var newFunc = f.value;
- var newFunc_tmp = newFunc.replace(/\s/g,"");
- if ( newFunc_tmp == "" ) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:saveDelSelAlerti});
- } else { // something there, let's test it
- if(/\afploti/.test(cAppearV) ) {
- if (ck4PtsRe.test(newFunc)) {
- // A set of points to plot
- s.deleteItemAt(s.currentValueIndices);
- s.insertItemAt(cAppearV,newFunc,nIndx);
- s.currentValueIndices=nIndx;
- } else {/* does not appear to be a point */
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:saveDelSelAlertii});
- }
- } else {/* not plot, must be curve*/
- s.deleteItemAt(s.currentValueIndices);
- s.insertItemAt(cAppearV,newFunc,nIndx);
- s.currentValueIndices=nIndx;
- }
- }
- }
- }
-}
-function graphBtnAction (baseName,pNum)
-{
- var s = this.getField(baseName+"ComboSelect");
- var d;
- var d, plot_curve="c1";
- if ( s != null ) {
- var nIndx = s.currentValueIndices;
- var cAppearV=s.getItemAt(s.currentValueIndices,false);
- if ( ( d = /\afploti\s+(\d)/.exec(cAppearV) ) != null ) {
- plot_curve="p"+d[1];
- } else {
- if ( ( d = /\afcurvei\s+(\d)/.exec(cAppearV) ) != null ) {
- plot_curve="c"+d[1];
- } else {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:graphBtnAlerti});
- }
- }
- }
- Graph_xy({graph:plot_curve},baseName,pNum);
-}
-function afsplitInterval(cInterval)
-{
- var aDomTmp=stripBrackets(cInterval);
- aDomTmp=aDomTmp.split(",");
- return { LEP: aDomTmp[0], UEP: aDomTmp[1] };
-}
-\end{newsegment}
-\begin{newsegment}{AF: Keystroke/Formatting Functions}
-function keystrokeDomRng (fname)
-{
- if (event.willCommit) {
- var retn = ParseInput(event.value);
- if ( !retn ) event.rc = false;
- else {
- try { eval ( retn ) }
- catch(e) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:badNumberMsg});
- event.rc=false;
- };
- }
- }
-}
-function formatFileInput (fname)
-{
- this.getField(fname).value = ParseInput(event.value);
-}
-function formatVarIntervals (fname)
-{
- var val = Number(EvalParse(event.value));
- this.getField(fname).value = val;
-}
-function formatFunctionInput (fname)
-{
- var val = ParseInput(event.value);
- this.getField(fname).value = val;
-}
-function keystrokeFunctionInput ()
-{
- if (event.willCommit) {
- var str = event.value.replace(/\s/g,"");
- if ( str == "" ) {
- app.alert({cTitle:"AcroFleX Graphing",
- cMsg:saveDelSelAlerti});
- event.rc = false;
- }
- }
-}
-function keystrokeNumPoints ()
-{
- try{
- var val = Number(EvalParse(event.value));
- } catch(e) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:badNumberMsg});
- event.rc=false;
- return;
- }
- if ( val < 0 ) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:negNumberMsg});
- } else {
- if ( val == 0 ) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:zeroNumberMsg});
- val = \af@defaultNumPoints;
- }
- }
- event.value = Math.ceil(Math.abs(val));
-}
-function keystrokeAmtShift()
-{
- try{
- var val = Number(EvalParse(event.value));
- } catch(e) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:badNumberMsg});
- event.rc=false;
- return;
- }
- if ( val < 0 ) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:negShiftMsg});
- } else {
- if ( val == 0 ) {
- app.alert({cTitle:"AcroFLeX Graphing",
- cMsg:zeroShiftMsg});
- val = 1;
- }
- }
- event.value = Math.abs(val);
-}
-\end{newsegment}
-\begin{newsegment}{AF: Support for Custom Graphing Problems}
-% \end{macrocode}
-% A general purpose function for graphing that takes into consideration all the
-% parameters. This is used by the \cs{sgraphLink} and for any JS code that uses
-% custom methods. The command \cs{defineGraphJS} is used to set up the parameters
-% for this function..
-% \begin{macrocode}
-function Graph_xytJS (func,xI,yI,xP,tI,graph,populate,wait,%
-type,form,gName,nPts) {
- var oDom = afsplitInterval(xI);
- var oRng = afsplitInterval(yI);
- var oPlotD = afsplitInterval(xP);
- var oP=new Object(), oD=new Object(), oDt=new Object();
- oP.graph=graph;
- oP.populate=populate;
- oP.wait=wait;
- if (type!="") oP.type=type;
- if (form!="") oP.form=form;
- oD={x_min:oDom.LEP,x_max:oDom.UEP,y_min:oRng.LEP,y_max:oRng.UEP,x_l:oPlotD.LEP,x_u:oPlotD.UEP};
- if ( tI=="") {
- Graph_xy(oP,gName,this.pageNum,func,nPts,oD);
- } else {
- var oDom_t = afsplitInterval(tI);
- oDt={t_min:oDom_t.LEP,t_max:oDom_t.UEP};
- Graph_xyt(oP,gName,this.pageNum,func,nPts,oD,oDt);
- }
-}
-\end{newsegment}
-\end{insDLJS*}
-% \end{macrocode}
-% Lastly, we define a \texttt{willClose} code and an \texttt{execJS}
-% code. The first comes in on the ``developer's hook'' so the user
-% can still use the \texttt{willClose} environment without disturbing
-% this code. When the document starts to close, we deactivate all
-% rich media annotations, to prevent exceptions from being thrown.
-% \begin{macrocode}
-\begin{defineJS}{\af@WillClose}
-for (var n=0; n<this.numPages; n++) {
- var rm = this.getAnnotsRichMedia(n);
- if ( rm != undefined) {
- for (var i=0; i<rm.length; i++ ) rm[i].activated=false;
- }
-}
-\end{defineJS}
-% \end{macrocode}
-% We save any other developer \texttt{willClose} code, and define ours, after
-% replacing any older developer \texttt{willClose} code.
-% \begin{macrocode}
-\let\af@save@developer@will@Close\developer@will@Close
-\def\developer@will@Close{%
- \af@save@developer@will@Close
- \af@WillClose
-}
-% \end{macrocode}
-% We reset only the form fields in the document created by \textsf{acroflex} and use
-% a format script. What this does is to make Acrobat execute the format code
-% of any text field (or combo box). The formatting code I've placed causes
-% the default functions and values such as \verb!x^2! to be parse, and place
-% in the hidden field. This code is used only once when the document is
-% first opened by Acrobat then thrown away. The document author needs to
-% save the document after opening.
-% \begin{macrocode}
-\begin{execJS}{afreset}
-% try {this.resetForm()} catch(e){};
-var aResetFields=new Array();
-var fname;
-var re=/theFunction|theDom|theRng/;
-for (var i=0; i< this.numFields; i++) {
- fname = this.getNthFieldName(i);
- if ( re.test(fname) ) aResetFields.push(fname);
-}
-if (aResetFields.length !=0)
- try {this.resetForm(aResetFields)} catch(e){};
-\end{execJS}
-% \end{macrocode}
-% We input a customization file for the document author to enter language localizations
-% for the tooltip, for example. This file can be placed in the folder of the source file
-% of elsewhere on the {\LaTeX} search path.
-% \begin{macrocode}
-\InputIfFileExists{\af@lang@type}{}{%
- \PackageWarning{acroflex}{Could not find the language file
- \af@lang@type,\MessageBreak please place this file on the latex
- search path.}
-}
-% \end{macrocode}
-%\changes{v1.6}{2015/10/13}{Restore catcodes of subscript and superscript}
-% Restore catcodes of subscript and superscript to other.
-% \begin{macrocode}
-\af@restoreCats
-%</package>
-% \end{macrocode}
-% \section{History}
-% This initial roll-out of {\AcroFLeX} occurred on 07/06/08 with version v0.4e.
-% Changes since then are listed below.
-%\begin{itemize}
-% \item (2008/09/26 v0.5b) System freezes when the \cs{domMinP} and \cs{domMaxP} macros are not present, and the
-% user enters a function of $t$. Put in some tests to prevent this from happening.
-% \item (2008/09/23 v0.5a) Fixed a problem that JS goes into an infinite loop when a non-functional
-% expression is in the function input field.
-% \item (2008/07/26 v0.5) Worked on compatibility issues with the \texttt{unicode} option of \textsf{hyperref}.
-% Defined two commands \cs{eq@nuDV} and \cs{eq@nuV} (in \textsf{eforms}) which prevents hyperref from converting the text to
-% octal notation. These are used in the fields that take functions as their initial values, now \verb!x^2!
-% does not raise a problem with hyperref even when in unicode mode. Also, made some changes to eforms.dtx
-% concerning \cs{r} and \cs{t}. When in unicode mode, these two have to be redefined to \cs{textCR} and
-% \cs{textHT}, respectively.
-% \item (2008/07/24 v0.4g) Fixed a problem with entering points through the user interface. Now fixed.
-% \item (2008/07/18 v0.4f) Identified a problem with parametric equations (interactive mode),
-% when one of the expressions involves a power. The system went into an infinite loop, jumping
-% between \texttt{Graph\_xy} and \texttt{Graph\_xyt}. Changed the early test to \texttt{theFunction}
-% rather than \texttt{theHiddenFunction}.
-% \item[] Added the new series \texttt{a1}, \texttt{a2}, \texttt{a3}, and \texttt{a4} as values of the graph key of \cs{sgraphLink}. These are similar to the c counterparts, but
-% shade in the graph between the x-axis and the graph. For parametric equations, the results seem
-% good, but could be unpredictable.
-%\end{itemize}
-% \Finale
-\endinput
diff --git a/macros/latex/contrib/acroflex/acroflex.ins b/macros/latex/contrib/acroflex/acroflex.ins
deleted file mode 100644
index 0b53dfae61..0000000000
--- a/macros/latex/contrib/acroflex/acroflex.ins
+++ /dev/null
@@ -1,60 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% Copyright 1999-2006 D. P. Story
-%%
-%% This file is part of the `AcroTeX eDucation Bundle'.
-%% -------------------------------------------
-%%
-%% It may be distributed under the conditions of the LaTeX Project Public
-%% License, either version 1.2 of this license or (at your option) any
-%% later version. The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%%
-%% --------------- start of docstrip commands ------------------
-%%
-\def\filedate{2008/07/01}
-\def\batchfile{acroflex.ins}
-
-\input docstrip
-\ifx\generate\undefined
- \Msg{**********************************************}
- \Msg{*}
- \Msg{* This installation requires docstrip}
- \Msg{* version 2.4 or later.}
- \Msg{*}
- \Msg{* An older version of docstrip has been input}
- \Msg{*}
- \Msg{**********************************************}
- \errhelp{Move or rename old docstrip.tex and get a newer one.}
- \errmessage{Old docstrip in input path}
- \batchmode
- \csname @@end\endcsname\end
-\fi
-
-\keepsilent
-\askforoverwritefalse
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\preamble
-\endpreamble
-
-\generate
-{%
- \file{acroflex.sty}{\from{acroflex.dtx}{copyright,package}}
-}
-
-\Msg{***************************************************************}
-\Msg{*}
-\Msg{* \space To finish the installation you have to copy the files }
-\Msg{*}
-\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX}
-\Msg{*}
-\Msg{***************************************************************}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
diff --git a/macros/latex/contrib/acroflex/afcustom_de.def b/macros/latex/contrib/acroflex/afcustom_de.def
deleted file mode 100644
index 2075a30d62..0000000000
--- a/macros/latex/contrib/acroflex/afcustom_de.def
+++ /dev/null
@@ -1,79 +0,0 @@
-%
-% AcroFleX (language) customization definition file
-% Dr. D. P. Story
-% http://www.acrotex.net
-%
-% Remove the \endinput command below, and redefine each as desired. For languages
-% that require special accented characters, the unicode option of hyperref is needed
-% for the tooltips. See the AcroFleX manual for more details.
-%
-
-%
-% ------------------------------------------------------------------;
-% These text commands are tooltip messages for the various controls ;
-% ------------------------------------------------------------------;
-%
-% For special accented characters, try entering them directly from your keyboard;
-% if that fails, use the unicode option of web (which is just passed to hyperrerf),
-% then enter the accented characters using latex commands, like \"{u} for u-umlaut.
-%
-\tticonFloatGraphScreen{Klicken Sie, um den Grafik-Bildschirm anzuzeigen,
- klicken Sie erneut, um diesen wieder zu schliessen.}
-%
-% This message attempts to format the tooltip as an enumerated list.
-%
-\ttfuncInputField{Geben Sie eine der folgenden Ausdrücke ein:\r
- \space\space1. Eine Funktion in Abhängigkeit von x und der Gestalt f(x);\r
- \space\space2. Eine Polarfunktion in Abhängigkeit von t und der Gestalt f(t);\r
- \space\space3. Ein Satz von Parameterfunktionen in Abhängigkeit von t und der Gestalt f(t);g(t)\r
- \space\space\space\space\space(getrennt durch ein Semikolon);\r
- \space\space4. Eine Liste von Punkten, (a1,b1);(a2,b2);...;(an,bn)\r
- \space\space\space\space\space(jeweils getrennt durch ein Semikolon).}
-\ttgraphBtn{Klicken Sie hier, um das zugehörige Schaubild zeichnen zu lassen.}
-\ttgraphClrBtn{Klicken Sie hier, um das Schaubild zu löschen, Shift-klicken Sie, um den Grafik-Bildschirm zu deaktivieren.}
-%
-\ttfunctionSelect{Geben Sie in \afcurvei1 - \afcurvei4 eine Funktion ein, oder in \afploti1 - \afploti4 eine Liste von Punkten.}
-\ttsavedelSelBtn{Klicken Sie hier, um die eingegebene Funktion in der Liste zu speichern, Shift-klicken Sie, um diese Funktion wieder von der Liste zu löschen.}
-%
-\ttdomMin{Geben Sie den kleinsten Wert der Variablen x ein.}
-\ttdomMax{Geben Sie den größten Wert der Variablen x ein.}
-\ttrngMin{Geben Sie den kleinsten Wert der Variablen y ein.}
-\ttrngMax{Geben Sie den größten Wert der Variablen y ein.}
-\ttdomMinP{Geben Sie den kleinsten Wert der Variablen t ein.}
-\ttdomMaxP{Geben Sie den größten Wert der Variablen t ein.}
-%
-\ttnumPoints{Geben Sie die Anzahl der Punkte ein, mit der gezeichnet werden soll.}
-\ttamtShift{Geben Sie die Schrittweite ein, mit der horizontal oder vertikal verschoben wird.}
-\ttzoomInOut{Klicken Sie zum Auszoomen, Shift-klicken Sie zum Einzoomen.}
-%
-% ------------------------------------------------------------------;
-% Below are some text macros used in creating error messages. They ;
-% may be redefined into better English, or another language. ;
-% ------------------------------------------------------------------;
-%
-% \defineJSStr is a new command (defined in eforms) that enables you
-% to enter unicode, for example, \u00FC is \"{u}. Also within the
-% argument string, you can use \r and \t to format your lines as
-% needed. Double back slash \\ is converted into single backslash \,
-% so for example, \\defineJSStr appears in the dialog box as
-% \defineJSStr. The string argument is immediately expanded, so a
-% command like \af@defaultNumPoints (in \af@zeroNumberMsg below) gets
-% expanded at definition time. Use \protect to delay the expansion
-% until the tex compiler finally expands the JS command string.
-%
-\defineJSStr{\af@badNumberMsg}{%
- Der angegebene Wert ist keine Zahl, bitte geben Sie eine Zahl ein, oder zumindest einen Ausdruck, der eine Zahl ergibt.}
-\defineJSStr{\af@negNumberMsg}{%
- Die Anzahl der Punkte ist eine positive ganze Zahl, die nun mit einem positiven Wert versehen wird.}
-\defineJSStr{\af@zeroNumberMsg}{%
- Die Anzahl der Punkte ist eine positive ganze Zahl, die nun mit dem Wert \af@defaultNumPoints vorgegeben wird.}
-\defineJSStr{\af@negShiftMsg}{%
- Die Schrittweite der Verschiebung ist eine positive Zahl, die nun in eine positive Zahl umgewandelt wird.}
-\defineJSStr{\af@zeroShiftMsg}{%
- Die Schrittweite der Verschiebung ist eine positive Zahl, die nun mit 1 vorgegeben ist.}
-\defineJSStr{\af@saveDelSelAlerti}{%
- Bitte geben Sie erst eine Funktion in das Textfeld ein, bevor Sie es speichern wollen.}
-\defineJSStr{\af@saveDelSelAlertii}{%
- Sie haben keine Punkte zum Zeichnen definiert.}
-\defineJSStr{\af@graphBtnAlerti}{Undefinierte Funktionstypen.}
-\endinput
diff --git a/macros/latex/contrib/acroflex/afcustom_us.def b/macros/latex/contrib/acroflex/afcustom_us.def
deleted file mode 100644
index b45ed17c0f..0000000000
--- a/macros/latex/contrib/acroflex/afcustom_us.def
+++ /dev/null
@@ -1,87 +0,0 @@
-%
-% AcroFleX (language) customization definition file
-% Dr. D. P. Story
-% http://www.acrotex.net
-%
-% Remove the \endinput command below, and redefine each as desired. For languages
-% that require special accented characters, the unicode option of hyperref is needed
-% for the tooltips. See the AcroFleX manual for more details.
-%
-\endinput
-%
-% ------------------------------------------------------------------;
-% These text commands are tooltip messages for the various controls ;
-% ------------------------------------------------------------------;
-%
-% For special accented characters, try entering them directly from your keyboard;
-% if that fails, use the unicode option of web (which is just passed to hyperrerf),
-% then enter the accented characters using latex commands, like \"{u} for u-umlaut.
-%
-\tticonFloatGraphScreen{Click to view graphing screen,
- click again to hide graphing screen.}
-%
-% This message attempts to format the tooltip as an enumerated list.
-%
-\ttfuncInputField{Enter any of the following for expressions:\r
- \space\space1. A function of x of the form f(x);\r
- \space\space2. A polar function of t of the form f(t);\r
- \space\space3. A set of parametric functions of t of the form f(t);g(t)\r
- \space\space\space\space\space(separated by a semi-colon);\r
- \space\space4. A list of points, (a1,b1);(a2,b2);...;(an,bn)\r
- \space\space\space\space\space(separated by semi-colons).}
-\ttgraphBtn{Press to graph the function}
-\ttgraphClrBtn{Click to clear graph, shift-click to deactivate the
- graphing screen}
-%
-\ttfunctionSelect{Enter a function on \afcurvei1--\afcurvei4, or
- a list of points on \afploti1--\afploti4.}
-\ttsavedelSelBtn{Click to save current function to list, shift-click
- to delete the current function from list}
-%
-\ttdomMin{Enter the minimum value for the variable x}
-\ttdomMax{Enter the maximum value for the variable x}
-\ttrngMin{Enter the minimum value for the variable y}
-\ttrngMax{Enter the maximum value for the variable y}
-\ttdomMinP{Enter the minimum value for the variable t}
-\ttdomMaxP{Enter the maximum value for the variable t}
-%
-\ttnumPoints{Enter the number of points to plot}
-\ttamtShift{Enter the amount to shift, horizontally or vertically}
-\ttzoomInOut{Click to zoom out, shift-click to zoom in}
-%
-% ------------------------------------------------------------------;
-% Below are some text macros used in creating error messages. They ;
-% may be redefined into better English, or another language. ;
-% ------------------------------------------------------------------;
-%
-% \defineJSStr is a new command (defined in eforms) that enables you
-% to enter unicode, for example, \u00FC is \"{u}. Also within the
-% argument string, you can use \r and \t to format your lines as
-% needed. Double back slash \\ is converted into single backslash \,
-% so for example, \\defineJSStr appears in the dialog box as
-% \defineJSStr. The string argument is immediately expanded, so a
-% command like \af@defaultNumPoints (in \af@zeroNumberMsg below) gets
-% expanded at definition time. Use \protect to delay the expansion
-% until the tex compiler finally expands the JS command string.
-%
-\defineJSStr{\af@badNumberMsg}{%
- The value input does not appear to be a number, please enter a
- number, or an expression that evaluates to a number.}
-\defineJSStr{\af@negNumberMsg}{%
- The number of points is a positive integer, changing to a
- positive integer.}
-\defineJSStr{\af@zeroNumberMsg}{%
- The number of points is a positive integer, changing to the
- default value of \af@defaultNumPoints.}
-\defineJSStr{\af@negShiftMsg}{%
- The amount of shift is a positive number, changing to a positive
- number.}
-\defineJSStr{\af@zeroShiftMsg}{%
- The amount of shift is a positive number, changing to the
- default value of 1.}
-\defineJSStr{\af@saveDelSelAlerti}{%
- There is nothing in the function input text field.}
-\defineJSStr{\af@saveDelSelAlertii}{%
- You have not defined any points to plot}
-\defineJSStr{\af@graphBtnAlerti}{Undefined graph types}
-\endinput
diff --git a/macros/latex/contrib/acroflex/doc/acroflex_man.pdf b/macros/latex/contrib/acroflex/doc/acroflex_man.pdf
deleted file mode 100644
index 7edb5a4c41..0000000000
--- a/macros/latex/contrib/acroflex/doc/acroflex_man.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/acroflex/doc/acroflex_man.tex b/macros/latex/contrib/acroflex/doc/acroflex_man.tex
deleted file mode 100644
index 63bbcbb8f6..0000000000
--- a/macros/latex/contrib/acroflex/doc/acroflex_man.tex
+++ /dev/null
@@ -1,1073 +0,0 @@
-% makeindex < acroflex_man.idx > acroflex_man.ind
-\documentclass{article}
-\usepackage[fleqn]{amsmath}
-\usepackage[
- web={centertitlepage,designv,
- nodirectory,forcolorpaper,
- latextoc,pro},
- eforms,
- linktoattachments,
- aebxmp
-]{aeb_pro}
-\usepackage[dvipsone,showembeds]{graphicxsp}
-\usepackage{array}
-\usepackage[altbullet]{lucidbry}
-%\usepackage{myriadpro}
-
-%\usepackage{makeidx}
-%\makeindex
-\usepackage{acroman}
-\usepackage[active]{srcltx}
-
-\makeatletter
-\renewcommand{\paragraph}
- {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}}
-\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.5em}}
-\renewcommand*\descriptionlabel[1]{\hspace\labelsep
- \normalfont #1}
-\newcommand{\aebDescriptionlabel}[1]{%
- \setlength\dimen@{\amtIndent+\labelsep}%
- {\hspace*{\dimen@}#1}}
-\makeatother
-\newenvironment{aebDescript}
- {\begin{list}{}{\setlength{\labelwidth}{0pt}%
- \setlength{\leftmargin}{\leftmargin}%
- \setlength{\leftmargin}{\leftmargin+\amtIndent}%
- \setlength\itemindent{-\leftmargin}%
- \let\makelabel\aebDescriptionlabel
- }}{\end{list}}
-
-\def\AEBBook{\textsl{{Acro\!\TeX} eDucation System Tools: {\LaTeX} for interactive PDF documents}}
-\def\AcroBlog{{Acro\!\TeX} Blog}
-
-\newcommand\refctan[1]{\href{http://ctan.org/pkg/#1}{ctan.org/pkg/#1}}
-\newlength{\aebdimen}
-\def\anglemeta#1{$\langle\textit{\texttt{#1}}\rangle$}
-%\def\meta#1{\textit{\texttt{#1}}}
-\let\meta\anglemeta
-\let\pkg\textsf
-\let\env\texttt
-\let\opt\texttt
-\let\app\textsf
-\def\RMA{RMA}
-\let\SC\relax
-\def\SWF{SWF}
-\def\FLV{FLV}
-\let\EXT\relax
-\def\AcroFLeX{AcroF\kern-.1667em
- \lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}
-\def\AEB{\textsf{AeB}}
-\def\AcroTeX{Acro\!\TeX}
-\def\HTML{HTML}\def\FDF{FDF}
-\def\PDF{PDF}\def\URL{URL}
-\let\amtIndent\leftmargini
-\def\bNH{\begin{NoHyper}}\def\eNH{\end{NoHyper}}
-\def\nhnameref#1{\bNH\nameref{#1}\eNH}
-\def\nhNameref#1{\bNH\Nameref{#1}\eNH}
-\def\nhurl#1{\bNH\url{#1}\eNH}
-\def\grayV#1{\textcolor{gray}{#1}}
-\def\darg#1{\{#1\}}
-\def\parboxValign{t}
-\renewcommand*{\backrefalt}[4]{%
- \ifcase #1\or
- See page~#2.\else See pages~#2.\fi
-}
-\newenvironment{aebQuote}
- {\list{}{\leftmargin\amtIndent}%
- \item\relax}{\endlist}
-\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{%
- \raisebox{.5\baselineskip+#1}{%
- \expandafter\parbox\expandafter[\parboxValign]%
- {\marginparwidth}{\aebbkFmtMp#2}}}}
-\def\aebbkFmtMp{\kern0pt\itshape\small
- \color{blue}\raggedright\hspace{0pt}}
-\newcommand{\BlogArticle}{\makebox[0pt][l]{\hspace{-1pt}\color{blue}\Pisymbol{webd}{254}%
- }\raisebox{.5pt}{\color{red}\ding{045}}}
-\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}%
- \kern-.6em \hbox{$\mathcal S$}}$}
-\def\FitItIn{\eq@fititin}
-\def\endredpoint{\FitItIn{{\large\ifusebw\color{black}\else\color{red}\fi$\blacktriangleleft$}}}
-
-\def\takeMeasure{\bgroup\obeyspaces\takeMeasurei}
-\def\takeMeasurei#1{\global\setbox\webtempboxi\hbox{\ttfamily#1}\egroup}
-
-
-\urlstyle{rm}
-
-\def\expath{../examples}
-
-\DeclareDocInfo
-{
- university={\AcroTeX.Net},
- title={\texorpdfstring{\AcroFLeX\\[1em]
- The {\AcroTeX} and FLEX/Flash Connection\\[1em]Applications to Graphing}{The AcroFLeX
- Graphing System}},
- author={D. P. Story},
- email={dpstory@acrotex.net},
- subject={Documentation for AcroFLeX},
- talksite={\url{www.acrotex.net}},
- version={1.6c},
- keywords={SWF, Adobe FLEX, Adobe Acrobat, JavaScript, ActionScript, AcroTeX},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL={http://www.acrotex.net}
-}
-
-\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
- \kern-.6em \hbox{$\mathcal S$}}$}
-
-\setWindowOptions{showtitle}
-
-\universityLayout{fontsize=Large}
-\titleLayout{fontsize=LARGE}
-\authorLayout{fontsize=Large}
-\tocLayout{fontsize=Large,color=aeb}
-\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb}
-\subsectionLayout{indent=-31.25pt,color=aeb}
-\subsubsectionLayout{indent=0pt,color=aeb}
-\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}}
-
-%\pagestyle{empty}
-%\parindent0pt\parskip\medskipamount
-
-\definePath\bgPath{"C:/Users/Public/Documents/%
- ManualBGs/Manual_BG_Print_AeB.pdf"}
-\begin{docassembly}
-\addWatermarkFromFile({
- bOnTop:false,
- cDIPath: \bgPath
-});
-\executeSave();
-\end{docassembly}
-
-\begin{document}
-
-\maketitle
-
-\selectColors{linkColor=black}
-\tableofcontents
-\selectColors{linkColor=webgreen}
-
-\section{Introduction}
-
-The \textbf{{\AcroFLeX}} Graphing Bundle is used to create a
-\emph{graphing screen} that can be incorporated into a PDF document
-and viewed within \app{Adobe Acrobat Reader}, version 9.0 or later. The graphing
-screen can be interactive or non-interactive.
-
-For the interactive graphing screen, the user can enter an
-expression representing a function of a single variable $x$, a polar
-function of $t$, or a set of parametric equations that are functions
-of $t$. Various controls are provided to change the viewing window,
-for shifting horizontally and vertically, and for zooming in or out.
-
-For the non-interactive graphing screen, the screen is populated
-when the user clicks a link created by \cs{sgraphLink}.
-\cs{sgraphLink} passes such information as the function,
-domain, and range to the graphing routines of {\AcroFLeX}.
-
-In this version of {\AcroFLeX}, up to four functions can be graphed
-and four sets of plotted points can be displayed, on one graphing
-screen.
-
-The graph screen itself is actually a SWF file, named
-\texttt{acroflex.swf}. This SWF file is part of the {\AcroFLeX}
-distribution. This package uses the \pkg{rmannot} package, also
-written by this author, to create rich media annotations, to embed
-\texttt{acroflex.swf} in the PDF document, and to display the SWF through
-the rich media annotation.
-
-\subsection{Background}
-
-Version 9 of Acrobat/Adobe Reader introduces the \textit{rich media
-annotation} which plays FLV movies, and SWF animations, and MP3 files.\footnote{%
-The rich media annotation is introduced in
-\textsl{Adobe Supplement to the ISO 32000}, which documents
-BaseLevel 1.7, ExtensionLevel 3, the Adobe's extensions to PDF~1.7.}
-Acrobat/Adobe Reader also provides a scripting bridge between
-JavaScript for Acrobat, and ActionScript, the scripting language of
-Flash player. This bridge enables the PDF and the Flash widget,
-embedded in the rich media annotation, to communicate. The scripting
-bridge opens up wonderful opportunities for applications to the
-education sector. The {\AcroFLeX} Graphing Bundle is one such
-application of the new PDF-Flash connection to education.
-
-\textbf{{\AcroFLeX}} uses the commercial product Adobe FLEX
-Builder~3 and FLEX~3 SDK to produce Flash widgets, and the AeB to
-create PDF documents with appropriate JavaScript to communicate with
-the Flash widget. FLEX Builder~3 is currently free for students and
-educators, the FLEX 3 SDK is free to all.
-
-% This style file defines some basic controls for
-% \textbf{{\AcroFLeX} Graphing} for controlling graphical SWF files
-% for graphing.
-%
-% These commands are general {\LaTeX} commands, that require no special driver, so
-% they can be used by, for example, pdftex; however, we use SWF files to produce
-% the graphing screen with the built-in ActionScript to communicate with the PDF.
-% For this, you will need Acrobat 9 Pro. In that case, you might as well use the
-% Acrobat Distiller to produce your PDF, but it is not necessary.
-
-\subsection{What is \texorpdfstring{{\AcroFLeX}}{AcroFLeX}?}
-
-The word \textbf{\AcroFLeX} is meant to convey a merging of two computer technologies:
-\begin{itemize}
-\item \textbf{Acro}: connotes both \textbf{Adobe Acrobat} (\textbf{Adobe Reader})
-and \textbf{{Acro\negthinspace\TeX}} (as in the
-\textbf{{Acro\negthinspace\TeX} eDucation Bundle} or, just \textbf{AeB}).
-\item \textbf{F\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}: connotes
- \textbf{Adobe FLEX 3}. FLEX 3 is used to create SWF files to interact with the user.
- In the case of graphing, plotting information is passed from Acrobat, via JavaScript,
- to the Flash widget. ActionScript takes the data, and plots the points provided, and
- connects them with a smooth curve.
-\end{itemize}
-
-
-\section{Requirements}
-
-In this section we list the requirements for this package.
-
-\subsection{{\LaTeX} Package Requirements}
-
-The preamble of the demo file afgraph.tex lists:
-\begin{Verbatim}[xleftmargin=\amtIndent,numbers=left]
-\usepackage[%
- driver=dvips,
- web={nodirectory,pro,tight,usesf},
- eforms,exerquiz,dljslib={ImplMulti},
- graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{acroflex}
-\end{Verbatim}
-Let me comment on each of these lines.
-\begin{itemize}
- \item Line~(7): Of course, we use the \pkg{acroflex} package. The
- \pkg{acroflex} package \textit{requires} the \pkg{rmannot} package.
- The latter package is the one that creates the rich media annotation,
- embeds the graphing Flash widget, acroflex.swf, and displays it. The
- \pkg{rmannot} package is the only one listed in \texttt{acroflex.dtx}
- as required, however, more packages are really required, as discussed
- in the next items.
-
- \item Lines (1)--(6): The \pkg{aeb\_pro} package is \textit{strongly
- recommended}. The {\AcroFLeX} Graphing Bundle uses the
- \texttt{willClose} environment to assure the document will behave
- properly when the user closes the document.
-
- The options use the so-called \textbf{AeB Control Central} that represent
- a convenient way to input the other required packages (in optimal order)
- needed by the \pkg{acroflex} package.
-
- If \texttt{aeb\_pro} is not used, then the individual
- required packages must be input using the \cs{usepackage}
- mechanism.
-
- We input the \texttt{aeb\_pro} package before the
- \pkg{acroflex} package.
-
- We now comment on each of the options used in the \texttt{aeb\_pro}
- package:
- \begin{description}
- \item[Line (2), the \texttt{driver} option:] This system uses \app{Acrobat
- Distiller}, which distills a PostScript file. The driver values
- this package uses are \texttt{dvips} and \texttt{dvipsone}.
- Setting the driver is important because the dvi-to-ps application
- (\texttt{dvips} and \texttt{dvipsone}) consumes the dvi file
- produced by the {\TeX} compiler and writes a PostScript file that
- Acrobat Distiller consumes.
-
- \item [Line (3), the \texttt{web} option:] The \texttt{web} package
- is not really required. It is used to create a PDF page size
- convenient to view on a computer monitor. This package has many
- options and features for the document author to design a document
- for screen---or for paper---viewing.
-
- The \pkg{web} package brings in the \pkg{hyperref} package, which is
- a \textit{required package}. If \texttt{web} is not used,
- \pkg{hyperref} needs to be input.
-
- \item [Line (4), the \texttt{eforms} option:] A \textit{required}
- package. This package provides form field and link support for
- the {\AcroFLeX} Graphing Bundle. The \texttt{eforms}, in turn,
- inputs the \texttt{insdljs} package, which provides support for
- document-level JavaScript. It is the document-level JavaScript
- where much of the work is done: parsing input, calculating
- graphing data, and sending this data off to the
- \texttt{acroflex.swf} widget for display.
-
- \item [Line (4), the \texttt{exerquiz} option:] A \textit{required}
- package. The \texttt{exerquiz} package has several function
- parsing methods defined in its document-level JavaScript.
- {\AcroFLeX} uses these parsing routines. One of these days, I'll
- separate out the parsing routines from \texttt{exerquiz}, but not
- now.
-
- \item [Line (4), the \texttt{dljslib} option:] An optional, \emph{but
- recommended} package. We use this package for its
- \texttt{ImplMulti} option. This option simplifies the problem of
- entering functional expressions. Without the \texttt{ImplMulti},
- to enter $2x\sin^2(2x)$, the user must type explicit
- multiplications, \verb!2*x*(sin(2*x))^2!, with the
- \texttt{ImplMulti} option, the user needs only enter
- \verb!2xsin^2(2x)!.
-
- \item [Line (5), the \texttt{graphicxsp} option:] The \texttt{graphicxsp} is a
- \textit{required} package of \pkg{rmannot}, but we input it
- earlier so we can set its options through the \textbf{AeB Control
- Central} (part of AeB Pro). The \texttt{graphicxsp} package, part
- of the AeB Pro Bundle, provides embedding of poster graphics for
- a rich media annotation. A poster graphic is the appearance you
- see when the annotation is not activated.
-
- \end{description}
-\end{itemize}
-
-\subsection{PDF Creator Requirements}
-
-This package requires Acrobat Distiller 9.0 (or later) to convert
-PostScript files to PDF. Because this package uses \pkg{rmannot}
-to create rich media annotations, there is also a requirement that
-the Distiller must be opened using the \texttt{-F} command line
-flag. See the documentation of the \pkg{rmannot} package for more
-details.
-
-\subsection{Installation}
-
-The installation of the \pkg{acroflex} package is
-straightforward. Place \texttt{acroflex.zip} in the search path of
-your {\TeX} system and unzip. Unzipping creates a folder named
-\pkg{acroflex}. Refresh your filename database, if your system
-requires it.
-
-Accompanying the distribution is a file named \texttt{acroflex.cfg}.
-Open this file in your favorite text editor and you see the
-following lines.
-\begin{Verbatim}
- %
- % AcroFleX Graphing Bundle Configuration File
- % D. P. Story, dpstory@acrotex.net
- %
- \pathToAcroFlex{C:/acrotex/aebpro/acroflex/swf}
-\end{Verbatim}
-Edit the argument of \cs{pathToAcroFlex} (defined in the
-\pkg{acroflex} package) to the path of the folder that contains
-the \texttt{acroflex.swf} Flash file. Save and close
-\texttt{acroflex.cfg}.
-
-Of course, you need to install the latest versions of AeB (the
-{\AcroTeX} eDucation Bundle), AeB Pro, \texttt{graphicxsp}, and
-\pkg{rmannot}. Follow the package documentation closely for
-installation, some of the packages require that certain JavaScript
-file be installed.
-
-
-\section{The \texorpdfstring{\AcroFLeX}{AcroFLeX} Graphing System}
-
-This package defines several document scripts, the two primary ones are
-\texttt{Graph\_xy()} and \texttt{Graph\_xyt()}, the others support these two.
-\texttt{Graph\_xy()} and \texttt{Graph\_xyt()} take the data passed to it,
-parse it, create plot data, and send it off to the {\AcroFLeX} graphing
-widget to graph the data by way of the infamous scripting bridge. Details of
-these functions can be found in the documentation in the
-\texttt{acroflex.dtx} file.
-
-In the {\AcroFLeX} graphing system there are three modes of
-operation: interactive, populate, and silent.
-\begin{itemize}
-\item \textbf{Interactive:} This occurs when the user enters a
-function through the UI.
-
-The following controls are \emph{required}:
-\begin{Verbatim}
- \funcInputField, \graphBtn, \numPoints
- \domMin, \domMax, \rngMin, \rngMax,
-\end{Verbatim}
-If parametric or polar graphs are to be used,
-then \cs{domMinP} and \cs{domMaxP} are also required. The other
-controls are \emph{optional}:
-\begin{Verbatim}
- \graphClrBtn
- \amtShift (\hShiftL, \hShiftR, \vShiftD, \vShiftU)
- \zoomInOut, \savedelSelBtn, \functionSelect
-\end{Verbatim}
-The \cs{graphClrBtn} button is recommended, though not required.
-All these commands will be discussed in detail in the pages that follow.
-
-\item \textbf{Populate:} The populate mode occurs when the graphing
- parameters are passed to \texttt{Graph\_xy} (or \texttt{Graph\_xyt}) by
- \cs{sgraphLink} (or some other command). All the essential information
- is passed as arguments. The target graphing screen has all the required
- controls, as listed above. The command initiating the graphing must set
- the \texttt{graph\_props.populate} property to \texttt{true}. In this
- case the graphing data populate the required fields and the graph will
- be drawn. It is the document author's responsibility to only use
- populate on graphing screens that have all the required control fields.
-
- Populate behaves exactly like interactive, but the graphing data is
- passed to the graphing routines in pre-packaged form, prepared by the
- document author; the user, however, can manipulate the curve once it
- appears.
-
- The required controls are the same as the interactive mode.
-
-\item \textbf{Silent:} In the silent or \emph{non-interactive} mode, there
- must be no controls other than \cs{graphClrBtn}. Basically, the
- document author prepares some pre-packaged graphs to be displayed to
- the user, without interaction. These may go along with a tutorial
- discussion symmetry, periodicity, tangent lines, etc.
-
- If the document author wants the user to interact with the graph, the
- required controls need to be supplied and the
- \texttt{graph\_props.populate} property needs to be set to \texttt{true}.
- That is, use the populate mode.
-
-\end{itemize}
-
-\subsection{Setting up the Graphing Screen}
-
-It should be a hard and fast rule that all content concerning a
-graphing screen should occur on the same page as the rich media
-annotation that displays the graphing screen. Should discussion
-cross page boundaries, create another graphing screen for that page.
-Never fear, the {\AcroFLeX} graphing widget is only embedded once,
-so adding more screens does not bloat the size of the file.
-
-There are three commands to set up an {\AcroFLeX} graph screen:
-\Com{dimScreenGraph}, \Com{graphName} and \Com{graphScreen}. The use of
-the command \cs{dimScreenGraph} is not required, but recommended.
-\takeMeasure{\string\graphScreen[\meta{rma\_options}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\dimScreenGraph{!meta(width)}{!meta(height)}
-\graphName{!meta(unique_name)}
-\graphScreen[!meta(rma_options)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-
-\CmdDescription We describe each of these three, and their parameters.
-\begin{itemize}
- \item \cs{dimScreenGraph}: This command is a convenient way of setting the dimensions
- of the graphing screen. You specify the width of the screen using the \meta{width}
- parameter and the height of the screen using the \meta{height} parameter. These values
- are passed through a \cs{setlength}, so simple calculations on the dimension can be performed
- on the parameters. (The \texttt{calc} package is used by the web package.) This command then
- defines macros \Com{hScreenGraph} and \Com{vScreenGraph} to hold these two dimensions, respectively.
- \cs{hScreenGraph} and \cs{vScreenGraph} can be used in \cs{graphScreen}, or in setting up
- \texttt{minipage}s based on these lengths, for example.
-
- \item[] If the aspect ratio of all your graphing screens is going to be the same, then
- it suffices to use \cs{dimScreenGraph} only once in the document.
-
- \item \cs{graphName}: Use this command to define a unique name for this graphing screen. Each
- screen must have a different name. This command defines the text macro \Com{afgraphName}, which
- expands to the given name.
-
- \item \cs{graphScreen}: This is the main command of this package,
- it's the one that creates a rich media annotation and associates
- it with the {\AcroFLeX} Graphing widget. It has three parameters:
- %\begin{aebQuote}
- \begin{description}\def\NH{\hspace{-\labelsep}}
- \item \NH\meta{rma\_options} is optional and just passes to the underlying
- command \Com{rmAnnot} (defined in the \pkg{rmannot}
- package) that actually creates the rich media annotation.
- The most ``important'' key-value pair, for this package,
- is the \texttt{poster} key, through this key, a poster can
- be associated with the annotation.
- \item \NH\meta{width} is the width of the graph screen, if \cs{dimScreenGraph} was used,
- just use \cs{hScreenGraph} as this value.
- \item\NH\meta{height} is height the screen of the graph screen, if \cs{dimScreenGraph} was used,
- just use \cs{vScreenGraph} as this value.
- \end{description}
-% \end{aebQuote}
-\end{itemize}
-The \cs{graphScreen} can be resized using \cs{resizebox} or
-\cs{scalebox} (from the \texttt{graphicx} package) to obtain a
-larger or smaller graph screen with the same aspect ratio.
-
-
-The following is an example of the usage of each of these three commands. Note that the
-height is three-fourths that of the width.
-
-\takeMeasure{\string\graphScreen[poster=aflogo]\{\string\hScreenGraph\}\{\string\vScreenGraph\}}
-\begin{dCmd*}{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\dimScreenGraph{186bp}{186bp*3/4}
-\graphName{graph1}
-\graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}
-\end{dCmd*}
-
-\paragraph*{Graphing Screen in a Floating Window.} The graphing
-window can appear in a floating window as well. The
-\Com{iconFloatGraphScreen} command is used to create such a screen.
-
-\takeMeasure{\string\iconFloatGraphScreen[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\iconFloatGraphScreen[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\PD The command has three parameters. The first optional one is passed as the
-first optional parameter of the underlying \cs{graphScreen} command. The
-\cs{graphScreen} command uses \Com{hScreenGraph} and \Com{vScreenGraph},
-defined through the \cs{dimScreenGraph} command, to set the dimensions of the
-graph screen. The graph screen is then resized using \Com{resizebox} from the
-\texttt{graphicx} package. The other two parameters, \meta{width} and
-\meta{height}, are simply passed to \cs{resizebox}. See the documentation on
-\cs{resizebox} for details on these parameters.
-
-For example,\takeMeasure{\string\iconFloatGraphScreen[poster=aflogo]\{40bp\}\{!\}}
-\begin{dCmd*}{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\iconFloatGraphScreen[poster=aflogo]{40bp}{!}
-\end{dCmd*}
-\noindent The first parameter is used to define a poster of the icon, the
-second parameter is \texttt{40bp} which means to resize the graphic
-to a width of \texttt{40bp}, the third parameter of exclamation
-point (!) signals \cs{resizebox} to maintain the aspect ratio of the
-graphic.
-
-The \cs{iconFloatGraphScreen} command is implemented by creating a
-rich media annotation for the {\AcroFLeX} Graphing widget, with a
-form field button on top of it that is transparent. Pressing on the
-icon is actually pressing on the button. The button action activates
-the graphing screen if it is not activated, and deactivates it if it
-is activated. The graphing screen might be the target of graphing
-data sent to it by the \cs{sgraphLink} command, see
-\hyperref[sgraphlink]{Section~\ref*{sgraphlink}},
-page~\pageref*{sgraphlink}, or through the graphing screen controls,
-these are explained next.
-
-\subsection{Graphing Screen Controls}
-
-The controls described in this section are used for interactive and
-populate modes.
-
-\subsubsection{Required Controls}
-
-For interactive or populate mode, in addition to \cs{graphScreen},
-several controls are required so the user can manipulate the graph.
-
-\takeMeasure{\string\funcInputField[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\funcInputField[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The field created by
-\cs{funcInputField}\footnote{The command was originally misnamed
-\cs{fileInputField} and is still recognized by the {\AcroFLeX}
-package; however, document authors should use the command
-\cs{funcInputField}.} is used to enter a function or a set of points
-to be graphed. The function is parsed by the \texttt{exerquiz}
-routines, so the same syntax that is used for \texttt{exerquiz}
-quizzes and short quizzes is used. The \meta{key\_values} are
-passed to the underlining text field and can be used to change the
-appearance of the field, see the \texttt{eformman.pdf} for more
-information. The \meta{width} and \meta{height} are the
-width and height, respectively, of the text field.
-
-\takeMeasure{\string\graphBtn[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\graphBtn[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The graph button. Once the user has entered a
-required data into the required fields, the user press this button
-and the graph appears in the graph screen. The parameters are the
-same as for \cs{funcInputField}, the descriptions are the same.
-
-\takeMeasure{\string\numPoints[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\numPoints[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription This text field displays the number of points to be
-plotted. It is editable, the user can change this value. The
-parameters are the same as for \cs{funcInputField}, the descriptions
-are the same.
-
-
-\takeMeasure{\string\domMin[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\domMin[!meta(key_values)]{!meta(width)}{!meta(height)}
-\domMax[!meta(key_values)]{!meta(width)}{!meta(height)}
-\rngMin[!meta(key_values)]{!meta(width)}{!meta(height)}
-\rngMax[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The graphing window is set by these four text
-fields. When the curve is graphed, only the rectangular window,
-\begin{quote}
-$[\,\cs{domMin}, \cs{domMax}\,] \times [\,\cs{rngMin},
-\cs{rngMax}\,]$
-\end{quote}
-is displayed.\footnote {By this notation, I mean the
-intervals determined by the values of these intervals.} The
-parameters are the same as for \cs{funcInputField}, the descriptions
-are the same.
-
-If parametric and polar graphing is required of the user,
-\cs{domMinP} and \cs{domMaxP} are required as well.
-
-\takeMeasure{\string\domMinP[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\domMinP[!meta(key_values)]{!meta(width)}{!meta(height)}
-\domMaxP[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The interval $[\,\cs{domMinP}, \cs{domMaxP}\,]$ is
-the interval over which a set of parametric equations is traced; in
-the case of polar functions, this interval is used for the domain of
-the polar function. The parameters are the same as for
-\cs{funcInputField}, the descriptions are the same.
-
-\paragraph*{Setting the default values.} Whereas it is possible to
-set the default values of the fields just described, a more
-convenient method is used.
-
-\takeMeasure{\string\defaultDomRng%
-\{\meta{x\_min}\}\{\meta{x\_max}\}\{\meta{y\_min}\}\{\meta{y\_max}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defaultFunction{!meta(!upshape(function|points))}
-\defaultNumPoints{!meta(postive_integer)}
-\defaultDomRng{!meta(x_min)}{!meta(x_max)}{!meta(y_min)}{!meta(y_max)}
-\defaultDomP{!meta(t_min)}{!meta(t_max)}
-\end{dCmd}
-
-\noindent These can be executed, along with \cs{graphName}, just before the
-\cs{graphScreen} command. The values of their parameters will then populate
-the corresponding fields as default values.
-
-The following are the default values of all the required fields, as
-defined by the \pkg{acroflex} package. Note that all of these are
-parsed (with the exception of the number of points) using
-\texttt{exerquiz}'s parsing routines; consequently, a value such as
-\texttt{2*PI} is perfectly legal.
-
-\takeMeasure{\string\defaultDomRng\darg{-2}\darg{2}\darg{0}\darg{4}}
-\begin{dCmd*}{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defaultFunction{x^2}
-\defaultNumPoints{40}
-\defaultDomRng{-2}{2}{0}{4}
-\defaultDomP{0}{2*PI}
-\end{dCmd*}
-
-\subsubsection{Optional Controls}
-
-There are several other optional controls that may be useful in manipulating
-a graph.
-
-\takeMeasure{\string\graphClrBtn[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\graphClrBtn[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-On clicking this button, the current graphing screen is cleared of
-all graphs and plotted points. Shift-clicking this button
-deactivates the graphing screen, and the annotation's poster
-appears.
-
-\paragraph*{Multiple Plots.} By using the \Com{functionSelect} combo
-box, the user can graph multiple curves.
-
-\takeMeasure{\string\functionSelect[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\savedelSelBtn[!meta(key_values)]{!meta(width)}{!meta(height)}
-\functionSelect[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-The \cs{functionSelect} combo box serves several purposes. It consists of
-eight items that appear as \texttt{Curve\,1}, \texttt{Curve\,2},
-\texttt{Curve\,3}, \texttt{Curve\,4}, \texttt{Plot\,1}, \texttt{Plot\,2},
-\texttt{Plot\,3}, \texttt{Plot\,4}. When this combo box is present, the user
-is able to graph multiple curves and plots. Changing the combo box to
-\texttt{Curve\,2}, for example, and pressing the \cs{graphBtn} button, the
-function will be graphed on \texttt{Curve\,2}. There are four curves possible,
-and four sets of plotted points. The different curves and plots are color
-coded.
-
-When the \cs{savedelSelBtn} is also present, the user can click on
-it and save the function definition under that curve or plot. These
-expressions will only be saved during the current viewing session in
-\app{Acrobat Reader}, but if the user is on Acrobat, the PDF can be saved
-and the values added to the combo list will be saved as well.
-
-The parameters are the same as for
-\cs{funcInputField}, the descriptions are the same.
-
-\paragraph*{Horizontal and Vertical Shifting.} There are several
-controls that shift the graphing window vertically or horizontally.
-
-\takeMeasure{\string\amtShift[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\amtShift[!meta(key_values)]{!meta(width)}{!meta(height)}
-\hShiftL{!meta(text)}
-\hShiftR{!meta(text)}
-\vShiftU{!meta(text)}
-\vShiftD{!meta(text)}
-\end{dCmd}
-The \cs{amtShift} is a text field, its value is a positive number
-that will be used to shift the graphing window horizontally or
-vertically. The user can change this value. The parameters are the
-same as for \cs{funcInputField}, the descriptions are the same.
-
-The other four commands are implemented as links, then clicked, the
-graphing window moves the amount specified in \cs{amtShift} field
-left (\cs{hShiftL}), right (\cs{hShiftR}), up (\cs{vShiftU}) or down
-(\cs{vShiftD}). The argument \meta{text} is the text to be used
-to identify the link.
-
-\paragraph*{Zoom, zoom, zoom.}
-
-The user can be allowed to optionally zoom the graph out or in by providing the
-control \Com{zoomInOut}.
-
-\takeMeasure{\string\zoomInOut[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\zoomInOut[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-Click the \cs{zoomInOut} button zooms out by an amount shown in the
-\cs{amtShift} field; shift-clicking will zoom in by the amount shown
-in the \cs{amtShift} field. The parameters are the same as for
-\cs{funcInputField}, the descriptions are the same.
-
-\paragraph*{Setting the default values.} As with the required controls, the optional ones
-can be given default values through convenience macros.
-
-
-\takeMeasure{\string\defaultShiftAmt\darg{\meta{positive\_number}}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defaultShiftAmt{!meta(positive_number)}
-\defaultShiftAmt{1}
-\end{dCmd}
-The \cs{defaultShiftAmt} is used to set the default value of the \cs{amtShift} field; the default
-value is \cs{defaultShiftAmt\darg{1}}.
-
-The \cs{functionSelect} lists four curves and four plots. The text can be changed by
-through the following text macros. Each command is followed by its default definition.
-\takeMeasure{\string\afCurve\darg{\meta{name\_for\_curve}}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\afCurve{!meta(name_for_curve)}
-\afCurve{Curve}
-\afPoint{!meta(name_for_point)}
-\afPoint{Point}
-\afUnused{!meta(unused)}
-\afUnused{--unused}
-\end{dCmd}
-The definitions values of \cs{afCurve} and \cs{afPoint} are the
-target of several search using regular expressions. If the values of
-\cs{afCurve} and \cs{afPoint} are too complex, the regular
-expression search may fail. Try to keep these definitions to ASCII
-characters.
-
-\subsection{Populate and Silent Linking}
-
-The previous section details the interactive mode, where the
-\cs{graphScreen} is present with all its required controls, and
-possibly some optional controls. Curves are generated purely through
-the user interface, that is, the user enters data into the various
-form fields, clicks the \cs{graphBtn}, and \textsl{voil\`{a}}, the
-graph is drawn!
-
-In this section, the populate mode is discussed as well as silent mode.
-
-\subsection{Graphing with \texorpdfstring{\protect\cs{sgraphLink}}{\CMD{sgraphLink}}}\label{sgraphlink}
-
-The document author can prepare function/points to be graphed, along
-with all the essential data needed to view the graph. For populate,
-the graphing data populate the required text field, and is available
-for the user then to manipulate. The population of an interactive
-graphing screen is done though a special link, the \cs{sgraphLink}.
-(The ``s'' in \cs{sgraphLink} stands for ``silent,'' but that was
-before I made the design decision to have a populate mode.)
-
-The syntax for \cs{sgraphLink} is
-\takeMeasure{\string\sgraphLink[\meta{appr}]\darg{\meta{graph\_key\_vals}}%
-\darg{\meta{func{\upshape|}points}}\darg{\meta{text}}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\sgraphLink[!meta(appr)]{!meta(graph_key_vals)}{!meta(func(!upshape|)points)}{!meta(text)}
-\end{dCmd}
-\PD The command takes four parameters, the first is the usual
-optional parameter that can be used to change the appearance of the
-link. The others we present in detail.
-\begin{description}
- \item [\texttt{[\meta{appr}]}:] Key-value pairs that are used to change the appearance of the link.
- \item [\meta{graph\_key\_vals}:] Key-value pairs, some of which are used on the {\LaTeX} side,
- some on the PDF side, while others on SWF side.
- \begin{description}
- \item\texttt{graph=\meta{value}}: The value of this key determines which
- \emph{chart series} (FLEX terminology) the data will appear
- on. The values of this key are:
- \begin{description}
- \item [\texttt{c1}, \texttt{c2}, \texttt{c3}, and \texttt{c4}:]
- Use one of these values to graph a function, a polar function,
- or a set of parametric functions. Up to four curves can be displayed
- on the graphing screen at once. These values are displayed using
- the \texttt{LinearSeries} (FLEX terminology).
- \item [\texttt{a1}, \texttt{a2}, \texttt{a3}, and \texttt{a4}:]
- Same as above, but the region between the horizontal axis, and
- the graph is shaded in. These values are displayed using
- the \texttt{AreaSeries} (FLEX terminology).
- \item [\texttt{p1}, \texttt{p2}, \texttt{p3}, and \texttt{p4}:]
- Use one of these values to plot points. These values are displayed using
- the \texttt{PlotSeries} (FLEX terminology).
- \end{description}
- Thus, \texttt{graph=c2} tells the graphing
- routines of {\AcroFLeX} and the {\AcroFLeX} Graphing widget
- to display this data on series \texttt{c2}.
-
- If two curves or plots have the same value for
- \texttt{graph}, then the one graphed last will
- overwrite the earlier one. If you want both curves
- or plots to appear on the graph together, give them
- different \texttt{graph} values.
-
- When this key is not given a value, the default is
- \texttt{c1}.
-
- \item [\texttt{type=\meta{\upshape{cart|para|polar}}}:] This key declares the type of curve,
- possible values are \texttt{cart}, \texttt{para}, and
- \texttt{polar}. This key is used mostly internally, and is
- normally not used. There is one situation that it is used. When
- defining a polar function, use \texttt{type=polar}. Thus, to
- define a polar function, type something like this:
-
-\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\footnotesize]
-\sgraphLink{type=polar,xInterval={[-1.5,1.5]},yInterval={[-1,2]},
- tInterval={[0,2*PI]},points=40,populate}
- {1+sin(t)}{$r = 1 + \sin(\theta)$ }
-\end{Verbatim}
-
- Note the explicit use of \texttt{type=polar}; the
- parsing can identify a function of $x$ and a set of
- parametric equations that are function of $t$, but help
- is needed for polar.
-
- \item [\texttt{populate=\meta{\upshape{true|false}}}:] Possible
- values are \texttt{true} or \texttt{false}, typing
- \texttt{populate} is the same as \texttt{populate=true}. This
- switch signals the graphing routines on the PDF side to populate
- the required fields with the graphing data. The default is
- \texttt{populate=false}, do not populate, use silent mode.
-
- \textbf{Populate versus Silent Modes:} The \texttt{populate} key
- is how populate mode is distinguished from silent mode:
- \texttt{populate=true} is populate mode, while \texttt{populate=false}
- (or the populate parameter not listed) is silent mode. In
- populate mode, the target graphing screen must have all required
- control fields; in silent mode, the only control should be the
- \cs{graphClrBtn} button.
-
- \item [\texttt{connectwith=\meta{\upshape{curve|segment}}}:] The key
- determines the method used to connect consecutive points on the
- graph, possible values are \texttt{curve} and \texttt{segment}.
- This value is passed to the {\AcroFLeX} graphing widget. For
- function of $x$, the default is \texttt{curve}; otherwise, the
- default is \texttt{segment}. This value is ignored when the
- \texttt{graph} property signals plotting
- (\texttt{p1}--\texttt{p4}).
-
- \item [\texttt{points=\meta{num}}:] The number of points to generate for
- plotting the current function. When the \texttt{graph}
- property signals plotting (\texttt{p1}--\texttt{p4}), the
- \texttt{points} property is ignored. If the graph property
- signals graphing (\texttt{c1}--\texttt{c4};
- \texttt{a1}--\texttt{a4}), and argument \texttt{\#3} is a
- set of rectangular points, the \texttt{points} property must
- either not be present, or set to zero (\texttt{points=0}).
-
- \item [\texttt{xInterval=\darg{[a,b]}}:] (Required) An interval on the $x$-axis, the
- interval must be in the form \verb!{[a,b]}!, for example,
- \texttt{xInterval=\darg{[0,1]}}. For functions of $x$, this interval
- represents the domain over which the function is graphed. It
- also represents the left and right boundaries of the graphing
- window.
-
- \textbf{Important:} The \texttt{xkeyval} package
- parses these parameters. Because the interval notation
- contains a comma (,), the whole interval must be enclosed in
- braces so the parsing will be correct, as illustrated above.
-
- \item [\texttt{yInterval=\darg{[a,b]}}:] (Required) An interval on the $y$-axis, the
- interval must be in the form \verb!{[a,b]}!, for
- example, \verb!yInterval={[0,1]}!. It represents
- the upper and lower boundaries of the graphing window.
-
- As with \texttt{xInterval}, the interval needs to be
- enclosed in braces.
-
- \item [\texttt{tInterval=\darg{[a,b]}}:] When plotting a set of parametric equations, or
- a polar function, this interval is required as a parameter. The
- interval is of the form \verb!{[a,b]}!, including the braces,
- and represents the domain of the parameter. The
- \texttt{tInterval} must not be included otherwise, that is, for
- graphing a function of $x$. Some early {\LaTeX} parsing tests
- whether the value of \texttt{tInterval} is empty (the default)
- or not. If nonempty, we assume the graphing is parametric or
- polar. For point plotting, \texttt{tInterval} must not be
- included in the parameter list.
-
- \item [\texttt{xPlot=\darg{[a,b]}}:] The parameter \texttt{xInterval} determines
- the left and right boundaries of the graphing window; it also
- determines the interval over which the function is to be plotted.
- The \texttt{xPlot} separates these two functionalities; the value
- of \texttt{xPlot} is an interval \verb![a,b]!, over which the
- function will be plotted. Thus, \verb!xInterval={[-2,2]}! specifies
- the scaling of the x-axis; while \verb!xPlot={[0,1]}! defines
- the interval to plot the given function. If \texttt{xPlot} is not
- specified, then \texttt{xInterval} will be used.
-
- \item [\texttt{noquotes=\meta{\upshape{true|false}}}:] When argument \texttt{\#3} is parsed, it
- is, by default, placed in double quotes, for example,
- \verb!"x^2"!; however, there are some situations where the
- double quotes should not be used. (See the \texttt{afgraph.tex}
- file for one such example.) Possible values for
- \texttt{noquotes} are \texttt{true} and \texttt{false}.
- Including \texttt{noquotes} in the option list is equivalent to
- \texttt{noquotes=true}. The default is \texttt{noquotes=false}.
-
- \item [\texttt{wait=\meta{\upshape{true|false}}}:] Including
- \texttt{wait} in the option list is equivalent to
- \texttt{wait=true}. The default is \texttt{wait=false}. When
- using \cs{defineGraphJS} to create a Java\-Script action that will
- execute multiple calls to \texttt{Graph\_xy} or
- \texttt{Graph\_xyt}, list \texttt{wait} in the option list. This
- will cause a slight delay that allows the graphing screen to
- become activated, (if not already activated) before the graphing
- data is created and sent to the {\AcroFLeX} graphing widget. See
- the example below in
- \hyperref[defineGraphJS]{Section~\ref*{defineGraphJS}},
- page~\pageref*{defineGraphJS}.
- \end{description}
- \item [\meta{func{\upshape|}points}:] This argument can be a function or a set of points.
- \begin{description}
- \item [\meta{func}:] A function can be three types: (1) a function of $x$; (2)
- a function of $t$; and a pair of function of $t$. If there is a
- single function of $t$, case (2), that is interpreted as a polar
- function, and graphed accordingly. The pair of functions must be
- functions of $t$ and separated by a semi-colon (;); these are
- then interpreted as a set of parametric equations. For example,
- \verb!x^2! would be graphed as a parabola; \verb!1+sin(t)! would
- be graphed as a Cardioid in the polar coordinate system; and
- \verb!cos(t);sin(t)! would be graphed as a circle.
-
- \item [\meta{points}:] Points can be input as a semi-colon-delimited list of
- rectangular coordinates. For example, \verb!(1,2);(2,3);(5,6)!.
- Points can be plotted discretely, or plotted and connected with
- either a smooth curve, or line segments.
- \end{description}
- \item [\meta{text}:] The text that the link is attached to, when
- this text is clicked, the defined action of populating the graph
- occurs.
-\end{description}
-
-\subsection{Graphing with \texorpdfstring{\protect\cs{defineGraphJS}}{\CMD{defineGraphJS}}}\label{defineGraphJS}
-
-The \cs{defineGraphJS} command expands to either
-\texttt{Graph\_xy()} or \texttt{Graph\_xyt()}, and is essentially
-the code used by \cs{sgraphLink}. Use \cs{defineGraphJS} to create a
-custom link action or form field action to graph pre-packaged
-functions.
-
-\takeMeasure{\string\defineGraphJS\darg{\meta{graph\_key\_vals}}\darg{\meta{func{\upshape|}points}}\darg{\meta{command}}}%
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defineGraphJS{!meta(graph_key_vals)}{!meta(func(!upshape|)points)}{!meta(command)}
-\end{dCmd}
-
-\CmdDescription \cs{defineGraphJS} defines a new command
-\cs{\meta{command}} what will expand to \texttt{Graph\_xy()} or
-\texttt{Graph\_xyt()} fully populated by its arguments. This command
-can be used to create new actions that involve multiple calls to the
-{\AcroFLeX} graphing routines.
-
-\PD There are three required parameters.
-\begin{description}
- \item [\meta{graph\_key\_vals}:] The same key-value pairs as
- described for \cs{sgraphLink}.
- \item [\meta{func{\upshape|}points}:] An expression representing a
- function of $x$, a polar function of $t$, a set of parametric
- equations, or a set of points.
- \item [\meta{command}:] A command that this JavaScript code will
- be saved under.
-\end{description}
-
-An example of usage can be found in \texttt{afgraph.tex}, we
-present another example here, also included in \texttt{afgraph.tex}, that
-might suggest the value of this command. We construct a link that
-graphs a function and plots discrete points.
-
-\begin{Verbatim}[fontsize=\footnotesize,xleftmargin=\amtIndent]
-\def\DomX{[0,2PI]}\def\DomY{[-1,1]}
-\defineGraphJS{graph=c1,wait,xInterval={\DomX},yInterval={\DomY},
- points=40}{sin(x)}{\mySineCurve}
-\defineGraphJS{graph=p1,wait,xInterval={\DomX},yInterval={\DomY}}
- {(0,sin(0));(PI/2,sin(PI/2));(PI,sin(PI));(3PI/2,sin(3PI/2));
- (2PI,sin(2PI))}{\mySinePoints}
-\setLinkText[\A{\JS{%
- \clearGraphJS\r
- \mySineCurve\r
- \mySinePoints
-}}]{Consider the sine function and indicated points}%
-\end{Verbatim}
-Note the use of the \texttt{wait} key in both the definitions to give the graphing screen
-time to be activated and ready to receive data. Observe also the list of points is given
-in symbolic form, we let JavaScript calculate the values for us.
-
-The command \Com{clearGraphJS} is used to clear the graphing screen before new curves are written
-to the screen. \cs{clearGraphJS} expands to the document JavaScript function that clears
-the graphing screen.
-
-\section{Customizations}
-
-There are a number of English phrases that appear as tooltips or as
-messages in alert dialog boxes, as a result, the acroflex package has
-a language option.
-\takeMeasure{\string\usepackage[lang=english|german]\darg{acroflex}}%
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\usepackage[lang=english|german]{acroflex}
-\end{dCmd}
-Specifying \texttt{english} as the value of \texttt{lang} inputs the
-file \texttt{afcustom\_us.def}, which normally does nothing; the
-definitions made in this file are the hard-wired defaults of the
-package. As an English speaker, you can edit this file, and improve
-the phrasing, if you wish. Specifying \texttt{german} as the value
-of \texttt{lang} inputs the file \texttt{afcustom\_de.def}; you can,
-of course, edit this file to get a preferred phrasing. If not lang
-key-value pair is specified, the \textsf{acroflex} package inputs
-the file \texttt{afcustom.def} (found in the examples folder). This
-file is intended for local use. Place it in the folder where the
-source file resides, modify it as desired to get custom messages.
-The file \texttt{afcustom.def} contains some instructions and guidelines for editing.
-
-\redpoint If the file \texttt{afcustom.def} is placed on the latex search
-path, it will be found and input for each source file; if
-\texttt{afcustom.def} is in the source file folder, it is this
-version that is found first and input.
-Should the phrases entered in \texttt{afcustom.def} require special
-accents, use the \texttt{unicode} option of \pkg{web} (which just
-passes the \texttt{unicode} option on to \pkg{hyperref}), and enter any
-special characters using {\LaTeX} notation. For example, to address
-my formerly favorite friend, J\"{u}rgen, we can write,
-\begin{Verbatim}[xleftmargin=\amtIndent]
-\ttgraphBtn{J\"{u}rgen, press to graph the function}
-\end{Verbatim}
-For the alert box messages, use JavaScript unicode notation, for example
-\begin{Verbatim}[xleftmargin=\amtIndent]
-\flJSStr{\af@badNumberMsg}{%
- J\u00FCrgen, the value input does not appear to be a number,
- please enter a number, or an expression that evaluates to a
- number. \dps}
-\end{Verbatim}
-This latter example does not require the \texttt{unicode} option.
-
-
-\newtopic Note that \cs{flJSStr} is a new command (defined in \pkg{insdljs}) that enables you
-to enter unicode, for example, \cs{u00FC} is the u-umlaut (\verb!\"{u}! or
-\"{u}). Also, within the argument string, you can use \cs{r} (carriage
-return) and \t (tab) to format your lines as needed. Double backslash
-\verb!\\! is converted into single backslash \verb!\!, so for example,
-\verb!\\AcroTeX! appears in the dialog box as \cs{AcroTeX}. The string
-argument is immediately expanded, so a command like \cs{dps} (in the above
-definition) gets expanded at definition time. Use \cs{protect} to delay the
-expansion until the tex compiler finally expands the JS command string
-(useful here, if \cs{dps} gets redefined).
-
-
-
-\bigskip\noindent
-That's all for now, I simply must get back to my retirement. \dps
-
-\end{document}
-
-
-\newpage
-\leftskip20pt\rightskip20pt\small
-\addcontentsline{toc}{section}{\protect\numberline{}Index}
-\markright{Index}
-\printindex
diff --git a/macros/latex/contrib/acroflex/examples/afcustom.def b/macros/latex/contrib/acroflex/examples/afcustom.def
deleted file mode 100644
index b45ed17c0f..0000000000
--- a/macros/latex/contrib/acroflex/examples/afcustom.def
+++ /dev/null
@@ -1,87 +0,0 @@
-%
-% AcroFleX (language) customization definition file
-% Dr. D. P. Story
-% http://www.acrotex.net
-%
-% Remove the \endinput command below, and redefine each as desired. For languages
-% that require special accented characters, the unicode option of hyperref is needed
-% for the tooltips. See the AcroFleX manual for more details.
-%
-\endinput
-%
-% ------------------------------------------------------------------;
-% These text commands are tooltip messages for the various controls ;
-% ------------------------------------------------------------------;
-%
-% For special accented characters, try entering them directly from your keyboard;
-% if that fails, use the unicode option of web (which is just passed to hyperrerf),
-% then enter the accented characters using latex commands, like \"{u} for u-umlaut.
-%
-\tticonFloatGraphScreen{Click to view graphing screen,
- click again to hide graphing screen.}
-%
-% This message attempts to format the tooltip as an enumerated list.
-%
-\ttfuncInputField{Enter any of the following for expressions:\r
- \space\space1. A function of x of the form f(x);\r
- \space\space2. A polar function of t of the form f(t);\r
- \space\space3. A set of parametric functions of t of the form f(t);g(t)\r
- \space\space\space\space\space(separated by a semi-colon);\r
- \space\space4. A list of points, (a1,b1);(a2,b2);...;(an,bn)\r
- \space\space\space\space\space(separated by semi-colons).}
-\ttgraphBtn{Press to graph the function}
-\ttgraphClrBtn{Click to clear graph, shift-click to deactivate the
- graphing screen}
-%
-\ttfunctionSelect{Enter a function on \afcurvei1--\afcurvei4, or
- a list of points on \afploti1--\afploti4.}
-\ttsavedelSelBtn{Click to save current function to list, shift-click
- to delete the current function from list}
-%
-\ttdomMin{Enter the minimum value for the variable x}
-\ttdomMax{Enter the maximum value for the variable x}
-\ttrngMin{Enter the minimum value for the variable y}
-\ttrngMax{Enter the maximum value for the variable y}
-\ttdomMinP{Enter the minimum value for the variable t}
-\ttdomMaxP{Enter the maximum value for the variable t}
-%
-\ttnumPoints{Enter the number of points to plot}
-\ttamtShift{Enter the amount to shift, horizontally or vertically}
-\ttzoomInOut{Click to zoom out, shift-click to zoom in}
-%
-% ------------------------------------------------------------------;
-% Below are some text macros used in creating error messages. They ;
-% may be redefined into better English, or another language. ;
-% ------------------------------------------------------------------;
-%
-% \defineJSStr is a new command (defined in eforms) that enables you
-% to enter unicode, for example, \u00FC is \"{u}. Also within the
-% argument string, you can use \r and \t to format your lines as
-% needed. Double back slash \\ is converted into single backslash \,
-% so for example, \\defineJSStr appears in the dialog box as
-% \defineJSStr. The string argument is immediately expanded, so a
-% command like \af@defaultNumPoints (in \af@zeroNumberMsg below) gets
-% expanded at definition time. Use \protect to delay the expansion
-% until the tex compiler finally expands the JS command string.
-%
-\defineJSStr{\af@badNumberMsg}{%
- The value input does not appear to be a number, please enter a
- number, or an expression that evaluates to a number.}
-\defineJSStr{\af@negNumberMsg}{%
- The number of points is a positive integer, changing to a
- positive integer.}
-\defineJSStr{\af@zeroNumberMsg}{%
- The number of points is a positive integer, changing to the
- default value of \af@defaultNumPoints.}
-\defineJSStr{\af@negShiftMsg}{%
- The amount of shift is a positive number, changing to a positive
- number.}
-\defineJSStr{\af@zeroShiftMsg}{%
- The amount of shift is a positive number, changing to the
- default value of 1.}
-\defineJSStr{\af@saveDelSelAlerti}{%
- There is nothing in the function input text field.}
-\defineJSStr{\af@saveDelSelAlertii}{%
- You have not defined any points to plot}
-\defineJSStr{\af@graphBtnAlerti}{Undefined graph types}
-\endinput
diff --git a/macros/latex/contrib/acroflex/examples/afgraph.pdf b/macros/latex/contrib/acroflex/examples/afgraph.pdf
deleted file mode 100644
index 73d7eb2b7c..0000000000
--- a/macros/latex/contrib/acroflex/examples/afgraph.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/acroflex/examples/afgraph.tex b/macros/latex/contrib/acroflex/examples/afgraph.tex
deleted file mode 100644
index 62d8be729a..0000000000
--- a/macros/latex/contrib/acroflex/examples/afgraph.tex
+++ /dev/null
@@ -1,412 +0,0 @@
-\documentclass{article}
-\usepackage{amsmath}
-\usepackage[%
- web={pro,tight,usesf},
- eforms,exerquiz,dljslib={ImplMulti},
- graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{acroflex}
-\usepackage{wrapfig}
-
-\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom
-\screensize{5in}{5.5in} % height, width dimensions
-
-
-\DeclareDocInfo
-{
- title=\texorpdfstring{{\AcroFLeX}}{AcroFleX} Graphing System,
- author=D. P. Story,
- university=Acro\negthinspace\TeX.Net,
- email=dpstory@acrotex.net,
- subject=Demo of the acroflex and the rmannot package,
- keywords={Adobe Acrobat, JavaScript, Adobe FLEX 3, ActionScript},
- talksite=\url{http://www.acrotex.net},
- talkdate={July 2008},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL=http://www.acrotex.net
-}
-\talkdateLabel{Published:}
-
-\setWindowOptions{showtitle}
-
-\requiredVersionMsg{%
- Version 9 required: This document may be viewed, but version 9
- of Acrobat/Adobe Reader is required to view the rich media
- annotations present in this document.}
-\requiredVersionMsgRedirect{%
- Version 9 required: This document may be viewed, but version 9
- of Acrobat/Adobe Reader is required to view the rich media
- annotations present in this document.}
-\requiresVersion[warnonly]{9}
-
-\def\AcroTeX{Acro\!\TeX}
-\def\myURL{http://www.math.uakron.edu/\string~dpstory}
-%
-% The following definitions are for the rmannot package.
-% The \saveNamedPath associates the name AcroAd with the
-% path to a Flash animation, Acro_Advertiser.swf.
-% The two \makePoster definitions are for the posters of the
-% rich media annotations. The first for the animation on page 1
-% and the second for all the AcroFlex graphing screens.
-\newcommand{\myRMFiles}{C:/Users/Public/Documents/My TeX Files/%
- tex/latex/aeb/aebpro/rmannot/RMfiles}
-\saveNamedPath{AcroAd}{\myRMFiles/Acro_Advertiser.swf}
-%
-% See the rmannot documentation. You can create your own
-% poster graphic and declare it in the preamble.
-%
-\makePoster[hiresbb]{aflogo}{aflogo}
-\makePoster[hiresbb]{AcroAd_poster}{AcroAd_poster}
-
-\parindent=0pt
-\pagestyle{empty} %\previewtrue
-\def\graphAndControls{\kern0pt\noindent
- \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\\[1ex]
- \makebox[\hScreenGraph][l]{%
- \savedelSelBtn[\textSize{7}\CA{S}]{9bp}{11bp}\kern1bp
- \functionSelect{50bp}{11bp}\hfill
- \funcInputField{\hScreenGraph-50bp-6bp-9bp}{11bp}%
- }\\[1ex]
- \makebox[\hScreenGraph][c]{\scriptsize
- \graphBtn[\textSize{7}]{}{9bp}\kern1pt
- \graphClrBtn[\textSize{7}]{}{9bp}\hfill
- \hShiftL{\raisebox{1bp}{\reflectbox{\ding{220}}}}\,%
- \vShiftU{\raisebox{1bp}{\rotatebox{90}{\ding{220}}}}\,\,%
- \amtShift[\textSize{7}]{12bp}{9bp}\,\,%
- \vShiftD{\raisebox{1bp}{\rotatebox[origin=c]{-90}{\ding{220}}}}
- \hShiftR{\raisebox{1bp}{\ding{220}}}\enspace
- \hfill\zoomInOut[\textSize{7}]{}{9bp}%
- }\\[1pt]%
- \makebox[\hScreenGraph][l]{\scriptsize
- $x = $ \strut\domMin[\textSize{7}]{36bp}{9bp}\ldots
- \domMax[\textSize{7}]{36bp}{9bp}\hfill
- $n = $\numPoints[\textSize{7}]{16bp}{9bp}
- }\\[1pt]%
- \makebox[\hScreenGraph][l]{\scriptsize
- $y = $ \rngMin[\textSize{7}]{36bp}{9bp}\ldots
- \rngMax[\textSize{7}]{36bp}{9bp}%
- }\\[1pt]%%
- \makebox[\hScreenGraph][l]{\scriptsize
- $t = $ \strut\domMinP[\textSize{7}]{36bp}{9bp}\ldots
- \domMaxP[\textSize{7}]{36bp}{9bp}%
- }
-\par
-}
-%
-% Display an advertisement on the opening page through the
-% \optionalPageMatter command.
-%
-\optionalPageMatter{%
-\begin{center}
-\begin{minipage}{.7\linewidth}
- \resizebox{\linewidth}{!}{%
- \rmAnnot[poster=AcroAd_poster,enabled=pageopen]{612bp}{265bp}{AcroAd}}%
-\end{minipage}
-\end{center}
-}
-
-\begin{document}
-
-\maketitle
-
-\parskip6pt
-\begin{center}
- \large\bfseries\color{blue} What is {\AcroFLeX}?
-\end{center}
-
-The word \textbf{\AcroFLeX} is meant to convey a merging of two computer technologies:
- \begin{itemize}
- \item \textbf{Acro}: connotes both \textbf{Adobe Acrobat} (\textbf{Adobe Reader})
- and \textbf{{Acro\negthinspace\TeX}} (as in the
- \textbf{{Acro\negthinspace\TeX} eDucation Bundle} or, just \textbf{AeB}).
- \item \textbf{F\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}: connotes
- \textbf{Adobe FLEX 3}. FLEX 3 is used to create SWF files to interact with the user.
- In the case of graphing, plotting information is passed from Acrobat, via JavaScript,
- to the Flash widget. ActionScript takes the data, plots the points provided, and
- connects them with a smooth curve.
- \end{itemize}
-
-\textbf{\textcolor{blue}{{\AcroFLeX} by Acro\!\TeX:}} This graphing
-system and this demonstration file were developed by D.~P. Story
-using the \href{http://www.ctan.org/pkg/acrotex}{{Acro\!\TeX} eDucation
-Bundle}, \href{http://www.adobe.com/products/acrobat/}
-{$\text{Adobe}^{\text{\tiny\circledR}}$
-$\text{Acrobat}^{\text{\tiny\circledR}}$~9 Pro}, and
-\href{http://www.adobe.com/products/flex/}{$\text{Adobe}^{\text{\tiny\circledR}}$
-$\text{FLEX}^{\text{\tiny TM}}$~3}.
-
-Acrobat 9 Pro introduces the rich media annotation that plays FLV
-movies and SWF files natively. Acrobat also provides a scripting
-bridge between JavaScript for Acrobat, and ActionScript, the
-scripting language of Flash player. This bridge enables the PDF and
-the Flash widget, embedded in the rich media annotation, to
-communicate. The scripting bridge opens up wonderful opportunities
-for application to the education sector. The graphing of {\AcroFLeX}
-is one such application of the new PDF-Flash connection to
-education.
-
-\textbf{{\AcroFLeX}} uses the commercial product Adobe FLEX
-Builder~3 and FLEX~3 SDK to produce Flash widgets, and the AeB to
-create PDF documents with appropriate JavaScript to communicate with
-the Flash widget. FLEX Builder~3 is currently free for students and
-educators, the FLEX 3 SDK is free to all.
-
-\newpage
-\parskip0pt
-
-% Basic parameters. These are the graphing screen dimensions you wish
-% for the AcroFleX graphing widget, and the \graphName is the base name used by
-% all the supporting components to the graphing screen.
-
-\dimScreenGraph{186bp}{186bp*3/4}
-\graphName{graph1}
-
-\begin{center}\bfseries\Large\color{blue}
- {\AcroFLeX} by {\AcroTeX}
-\end{center}
-
-\medskip
-The first goal in {\AcroFLeX} development was to build an interactive graphing
-screen educators could use in their PDFs.
-\medskip
-
-\begin{minipage}[t]{\hScreenGraph + 10bp}
-%
-% Insert the \graphScreen with all possible controls. Plot data entered by the
-% user is interactive mode.
-\graphAndControls
-\medskip
-%
-% Pass plot data to this graphing screen, and allow user to interact with it.
-%
-\makebox[\linewidth][c]{\textbf{Populate Mode}}
-Parametric Equations: \sgraphLink{xInterval={[-1,1]},yInterval={[-1,1]},tInterval={[0,2*pi]},
- points=40,populate=true}{cos(t);sin(t)}{$x=\cos(t)$; $y=\sin(t)$}\\[1ex]
-Polar Function: \sgraphLink{type=polar,xInterval={[-1.5,1.5]},yInterval={[-1,2]},tInterval={[0,2*pi]},
- points=60,populate=true}{1+sin(t)}{$r = 1 + \sin(\theta)$ }
-\end{minipage}\hfill
-\begin{minipage}[t]{\linewidth - \hScreenGraph - 10bp}\small\par
-\textbf{\textcolor{red}{Instructions:}} This graphing system can graph
-a function of $x$, a pair of parametric functions of $t$,
-or a polar function of $t$.
-\begin{questions}
- \item For a function of $x$, enter an algebraic expression to be graphed, e.g.,
- \verb!3x^2-1!, \verb!4sin(2x)!, \verb!ln(x)!,
- \verb!e^(x+1)!. For parametric equations, two functions of
- $t$ separated by a semicolon (;) e.g.,
- \texttt{cos(t);sin(t)}. For a polar function, enter a single
- expression that is a function of $t$, e.g.,
- \texttt{1+sin(t)}.
- \item Set the graph viewing window: The range of the horizontal
- axis ($x$-axis) and range of the vertical axis ($y$-axis).
- For parametric plotting, set the range of the $t$ variable.
- \item Enter the number of points, $n$, to plot.
- \item Click the \textsf{Graph It!} button.
- \item Shift the viewing window horizontally or vertical;
- or zoom in or out.
- \item Click \texttt{Clear} to clear the plot; use
- \textsf{shift-click} to deactivate the graphing screen.
-\end{questions}
-\end{minipage}
-
-\def\DomX{[0,2pi]}\def\DomY{[-1,1+.2]}
-
-%\end{document}
-
-\newpage
-\graphName{graph2}
-\begin{center}
- {\large\textbf{\textcolor{blue}{Graphing Predefined Functions}}}\\[3ex]
- \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\par\smallskip
- \makebox[\hScreenGraph][c]{\small\graphClrBtn{}{11bp}}
-\end{center}
-
-\begin{center}
- \rule{.67\linewidth}{.4pt}
-\end{center}
-The document author, that's you, can prepare some functions for the student to view:
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=40}{sin(x)}{$\sin(x)$},
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=80}{sin(2x)}{$\sin(2x)$},
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=100}{sin(3x)}{$\sin(3x)$}, and
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=100}{sin(4x)}{$\sin(4x)$}.
-All functions are graphed over the interval
-$[\,0, 2\pi\,]$. Let's view a graph with a vertical asymptote, shall we?
-Try \sgraphLink{xInterval={[.5,1.5]},yInterval={[-20,20]},points=200}{1/(x-1)}{$y = 1/(x-1)$}
-and \sgraphLink{xInterval={[0,2]},yInterval={[0,20]},points=200}{1/(x-1)^2}{$y = 1/(x-1)^2$}.
-
-\smallskip
-\begin{center}
- \rule{.67\linewidth}{.4pt}
-\end{center}
-\begin{shortquiz}
-What type of symmetry does the \sgraphLink{xInterval={[-pi,pi]},yInterval={[-1,1]},
-points=40}{sin(x)}{function}, graphed above, have?
-\begin{answers}{3}
-\Ans0 $x$-axis symmetry & \Ans0 $y$-axis symmetry & \Ans1 origin symmetry
-\end{answers}
-\end{shortquiz}
-
-\newpage
-\graphName{graph3}
-
-\begin{center}
- {\large\textbf{\textcolor{blue}{Multiple Curves and Plots}}}\\[3ex]
- \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\par\smallskip
- \makebox[\hScreenGraph][c]{\small\graphClrBtn{}{11bp}}
-\end{center}
-
-\smallskip
-\begin{center}
- \rule{.67\linewidth}{.4pt}
-\end{center}
-
-Plot multiple curves using predefined functions:
-\begin{itemize}
- \item \sgraphLink{graph=c1,xInterval={\DomX},yInterval={\DomY},points=40}{sin(x)}{$\sin(x)$},
- \sgraphLink{graph=c2,xInterval={\DomX},yInterval={\DomY},points=80}{sin(2x)}{$\sin(2x)$},
- \sgraphLink{graph=c3,xInterval={\DomX},yInterval={\DomY},points=100}{sin(3x)}{$\sin(3x)$},
- \sgraphLink{graph=c4,xInterval={\DomX},yInterval={\DomY},points=100}{sin(4x)}{$\sin(4x)$}.
-\end{itemize}
-
-Let's plot some points:
-\begin{itemize}
-
-\item Points on \sgraphLink{graph=p1,xInterval={\DomX},yInterval={\DomY}}{(0,sin(0));(pi/2,sin(pi/2));(pi,sin(pi));(3pi/2,sin(3pi/2));(2pi,sin(2pi))}{$\sin(x)$}
-(clear the graphing screen, click on this \sgraphLink{graph=c1,xInterval={\DomX},yInterval={\DomY},points=40}{sin(x)}{$\sin(x)$}
-link, then click on the plotted points link)
-
-
-\item Plot \sgraphLink{graph=p2,xInterval={\DomX},yInterval={\DomY}}{(1,1);(2,-1);(4,1/3);(3,-1/2)}
- {$(1,1); (2,-1); (4,1/3); (3,-1/2)$}
-
-\item Plot \sgraphLink{graph=c2,connectwith=segment,xInterval={\DomX},yInterval={\DomY}}{(2,0);(1,-1);(3,.5);(4,1);(6,0)}
- {$(2,0);(1,-1);(3,.5);(4,1);(6,0)$}
-
-\end{itemize}
-
-\newpage
-
-\graphName{graph4}
-
-\begin{center}
- {\large\textbf{\textcolor{blue}{Graphing in a Floating Window}}}
-\end{center}
-
-\begin{wrapfigure}[3]{l}{40bp}%
-\vspace{-\baselineskip}
-\iconFloatGraphScreen[poster=aflogo]{40bp}{!}
-\end{wrapfigure}%
-On this page, we take a different approach, by graphing functions
-in a \textsl{floating window}. This might be appropriate for graphing
-preset functions. Now let's copy and paste some of the previous text
-here: The document author, that's you, can prepare some functions
-for the student to view:
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=40}{sin(x)}{$\sin(x)$},
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=80}{sin(2x)}{$\sin(2x)$},
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=100}{sin(3x)}{$\sin(3x)$}, and
-\sgraphLink{xInterval={\DomX},yInterval={\DomY},points=100}{sin(4x)}{$\sin(4x)$}.
-All functions are graphed over the interval
-$[\,0, 2\pi\,]$. Let's view a graph with a vertical asymptote, shall we?
-Try \sgraphLink{xInterval={[.5,1.5]},yInterval={[-20,20]},points=200}{1/(x-1)}{$y = 1/(x-1)$}
-and \sgraphLink{xInterval={[0,2]},yInterval={[0,20]},points=200}{1/(x-1)^2}{$y = 1/(x-1)^2$}.
-
-
-\makebox[\linewidth][c]{\rule{.67\linewidth}{.4pt}}
-
-\parskip6pt
-
-\paragraph*{Controlling the Floating Window.} Clicking a graphing
-link will open the floating window and graph the defined function.
-Clicking the {\AcroFLeX} icon closes the window. The window itself
-has controls. The clicking the upper-right corner closes the window.
-Use the lower-left corner to resize the graph window (click and drag
-the lower-left corner). Click and drag anywhere else on the boundary
-will move the window.
-
-\makebox[\linewidth][c]{\rule{.67\linewidth}{.4pt}}
-
-The following quiz integrates the quiz/shortquiz environment with
-the {\AcroFLeX} Graphing routines, and uses \texttt{\string\defineGraphJS}
-to graph the input of the user.
-
-\begin{oQuestion}{afGraphQuiz}
-\defineGraphJS{graph=c3,xInterval={[-1,3]},yInterval={[-1,9]},
- noquotes,points=40}{event.value}{\myGraph}%
-\textbf{\textcolor{red}{Question}} Find the equation of the line
-tangent to the \sgraphLink{xInterval={[-1,3]},
-yInterval={[-1,9]},points=40}{2x^2}{graph of $f(x) = 2x^2 $} at the
-\sgraphLink{graph=p1,xInterval={[-1,3]},yInterval={[-1,9]}}{(1,2)}
- {point $ (1,2) $}. \RespBoxMath[%
- \AddAAKeystroke{if (retn != null){\r\myGraph}}]
- {4x-2}{4}{.0001}{[-1,3]}\hfill\CorrAnsButton{4x-2}\kern1bp\sqClearButton
-
-\end{oQuestion}
-
-\defineGraphJS{graph=c1,wait,xInterval={\DomX},yInterval={\DomY},
- points=40}{sin(x)}{\mySineCurve}
-\defineGraphJS{graph=p1,wait,xInterval={\DomX},yInterval={\DomY}}
- {(0,sin(0));(pi/2,sin(pi/2));(pi,sin(pi));(3pi/2,sin(3pi/2));
- (2pi,sin(2pi))}{\mySinePoints}
-
-Below is another example of the use of
-\texttt{\string\defineGraphJS}. A link is created with two calls to
-the graphing routines, one to plot a sine curve, the other to plot
-points on that curve.
-\setLinkText[\A{\JS{%
- \clearGraphJS\r
- \mySineCurve\r
- \mySinePoints
-}}]{Consider the sine function, and indicated points}%
-
-
-\newpage
-
-\graphName{graph5}
-
-\begin{center}
- {\large\textbf{\textcolor{blue}{Curves with filled area}}}\\[3ex]
- \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\par\smallskip
- \makebox[\hScreenGraph][c]{\small\graphClrBtn{}{11bp}}
-\end{center}
-
-Plot multiple curves using predefined functions:\\
-\begin{minipage}[t]{.5\linewidth-10pt}\kern0pt
-\begin{itemize}
- \item \sgraphLink{graph=a1,xInterval={\DomX},yInterval={\DomY},points=40}{sin(x)}{$\sin(x)$},
- \sgraphLink{graph=a2,xInterval={\DomX},yInterval={\DomY},points=80}{sin(2x)}{$\sin(2x)$},
- \sgraphLink{graph=a3,xInterval={\DomX},yInterval={\DomY},points=100}{sin(3x)}{$\sin(3x)$},
- \sgraphLink{graph=a4,xInterval={\DomX},yInterval={\DomY},points=100}{sin(4x)}{$\sin(4x)$}.
- \item Parametric Equations
- \begin{itemize}
- \item \sgraphLink{graph=a1,xInterval={[-1,1]},yInterval={[-1,1]},tInterval={[0,2*pi]},
- points=40}{cos(t);sin(t)}{$x=\cos(t)$; $y=\sin(t)$}
- \item \sgraphLink{graph=a3,xInterval={[0,4]},yInterval={[-2,2]},tInterval={[-2,2]},
- points=40}{t^2;t}{$x=t^2$; $y=t$}
- \end{itemize}
-\end{itemize}
-\end{minipage}\hfill\begin{minipage}[t]{.5\linewidth-10pt}\kern0pt
-\begin{itemize}
- \item Polar Functions
- \begin{itemize}
- \item \sgraphLink{graph=a2,type=polar,xInterval={[-1.5,1.5]},yInterval={[-1,2.3]},tInterval={[0,2pi]},
- points=60}{1+sin(t)}{$ r = 1 + \sin(\theta) $ }
- \item \sgraphLink{graph=a4,type=polar,xInterval={[-1.5,1.5]},yInterval={[-1,2.3]},tInterval={[0,2pi]},
- points=60}{1+1.25sin(t)}{$r = 1 + 1.25\sin(\theta)$ }
- \end{itemize}
-\end{itemize}
-\end{minipage}
-
-\begin{oQuestion}{afAreaQuiz}
-\textbf{\textcolor{red}{Question}} Find the area of the region
-\emph{below} the graph of \sgraphLink{graph=a1,xInterval={[0,pi/2]},
-yInterval={[0,1.1]}, points=40}{cos(x)}{$ f(x) = \cos(x) $} and
-\emph{above} the graph of \sgraphLink{graph=a2,
-xInterval={[0,pi/2]}, yInterval={[0,1.1]}, points=40}{sin(x)}{$ g(x)
-= \sin(x) $},
-as shown in the graph screen above.\\[1ex]
-\RespBoxMath{sqrt(2)-1}{1}{.0001}{[0,1]}\hfill\CorrAnsButton{sqrt(2)-1}\kern1bp\sqClearButton
-\end{oQuestion}
-
-
-\end{document}
diff --git a/macros/latex/contrib/acroflex/examples/afgraph_shaded.tex b/macros/latex/contrib/acroflex/examples/afgraph_shaded.tex
deleted file mode 100644
index c2ca0f29d6..0000000000
--- a/macros/latex/contrib/acroflex/examples/afgraph_shaded.tex
+++ /dev/null
@@ -1,107 +0,0 @@
-\documentclass{article}
-\usepackage{amsmath}
-\usepackage[%
-% driver=dvips,
- web={pro,tight,usesf},
- eforms,exerquiz,dljslib={ImplMulti},
- graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{rmannot}
-\usepackage{acroflex}
-
-\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom
-\screensize{5in}{5.5in} % height, width dimensions
-
-\DeclareDocInfo
-{
- title=\texorpdfstring{{\AcroFLeX}}{AcroFleX} Graphing System
- \texorpdfstring{\\[1ex]}{: }Graphing a Subinterval,
- author=D. P. Story,
- university=Acro\negthinspace\TeX.Net,
- email=dpstory@acrotex.net,
- subject=Demo of the acroflex and the rmannot package,
- keywords={Adobe Acrobat, JavaScript, Adobe FLEX 3, ActionScript},
- talksite=\url{http://www.acrotex.net},
- talkdate={July 2008},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL=http://www.acrotex.net
-}
-\talkdateLabel{Published:}
-
-\setWindowOptions{showtitle}
-
-\requiredVersionMsg{%
- Version 9 required: This document may be viewed, but version 9
- of Acrobat/Adobe Reader is required to view the rich media
- annotations present in this document.}
-\requiredVersionMsgRedirect{%
- Version 9 required: This document may be viewed, but version 9
- of Acrobat/Adobe Reader is required to view the rich media
- annotations present in this document.}
-\requiresVersion[warnonly]{9}
-
-\def\AcroTeX{Acro\!\TeX}
-\def\myURL{http://www.math.uakron.edu/\string~dpstory}
-%
-% The following definitions are for the rmannot package.
-% The \saveNamedPath associates the name AcroAd with the
-% path to a Flash animation, Acro_Advertiser.swf.
-% The two \makePoster definitions are for the posters of the
-% rich media annotations. The first for the animation on page 1
-% and the second for all the AcroFlex graphing screens.
-\newcommand{\myRMFiles}{C:/Users/Public/Documents/My TeX Files/%
- tex/latex/aeb/aebpro/rmannot/RMfiles}
-%\newcommand{\myRMFiles}{C:/AcroTeX/acrotex/aebpro/rmannot/RMfiles}
-\saveNamedPath{AcroAd}{\myRMFiles/Acro_Advertiser.swf}
-%\saveNamedPath{AcroAd}{Acro_Advertiser.swf}
-%
-% See the rmannot documentation. You can create your own
-% poster graphic and declare it in the preamble.
-%
-\makePoster[hiresbb]{aflogo}{aflogo}
-
-\parindent=0pt
-\pagestyle{empty}
-
-\optionalPageMatter{%
-\begin{center}
-\begin{minipage}{.7\linewidth}
- \resizebox{\linewidth}{!}{%
- \rmAnnot[poster=AcroAd_poster,enabled=pageopen]{612bp}{265bp}{AcroAd}}%
-\end{minipage}
-\end{center}
-}
-
-
-
-\begin{document}
-
-\maketitle
-
-\dimScreenGraph{186bp}{186bp*3/4}
-\graphName{graph1}
-
-\begin{center}
- {\large\textbf{\textcolor{blue}{Curves with filled area}}}\\[3ex]
- \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\par\smallskip
- \makebox[\hScreenGraph][c]{\small\graphClrBtn{}{11bp}}
-\end{center}
-
-
-% I've added a new parameter xPlot, the value is an interval of numbers over which
-% the graph is to be plotted. See the documentation in acroflex.dtx for a little more
-% detail. xInterval={[-1.6,1.6]},
-\defineGraphJS{graph=c1,wait,xInterval={[-1.6,1.6]},yInterval={[-.5,2]},points=40}{x^2}{\myParabola}
-\defineGraphJS{graph=a1,wait,xPlot={[-1,0]},xInterval={[-1.6,1.6]},yInterval={[-.5,2]},points=40}{x^2}{\myShadedParabola}
-\defineGraphJS{graph=a2,wait,xPlot={[-1,0]},xInterval={[-1.6,1.6]},yInterval={[-.5,2]},points=4}{1}{\myHLine}
-
-View a shaded curve, and be
-\setLinkText[\A{\JS{%
- \clearGraphJS\r
- \myShadedParabola\r
- \myHLine\r
- \myParabola\r
-}}]{amazed!}%
-
-\end{document}
diff --git a/macros/latex/contrib/acroflex/examples/aflogo.eps b/macros/latex/contrib/acroflex/examples/aflogo.eps
deleted file mode 100644
index 789100d9fe..0000000000
--- a/macros/latex/contrib/acroflex/examples/aflogo.eps
+++ /dev/null
@@ -1,8375 +0,0 @@
-%!PS-Adobe-3.1 EPSF-3.0
-%ADO_DSC_Encoding: Windows Roman
-%%Title: aflogo.pdf
-%%Creator: Adobe Acrobat 9.0.0
-%%For: Donald Story
-%%CreationDate: 06/09/2008, 10:48:11 AM
-%%BoundingBox: 0 0 186 150
-%%HiResBoundingBox: 0 0 186 150
-%%CropBox: 0 0 186 150
-%%LanguageLevel: 2
-%%DocumentNeededResources: (atend)
-%%DocumentSuppliedResources: (atend)
-%%DocumentNeededFeatures: (atend)
-%%DocumentSuppliedFeatures: (atend)
-%%DocumentData: Clean7Bit
-%%Pages: (atend)
-%%DocumentCustomColors: (atend)
-%%EndComments
-%%BeginDefaults
-%%ViewingOrientation: 1 0 0 1
-%%EndDefaults
-%%BeginProlog
-%%BeginResource: procset Adobe_AGM_Utils 1.0 0
-%%Version: 1.0 0
-%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{currentpacking true setpacking}if
-userdict/Adobe_AGM_Utils 75 dict dup begin put
-/bdf
-{bind def}bind def
-/nd{null def}bdf
-/xdf
-{exch def}bdf
-/ldf
-{load def}bdf
-/ddf
-{put}bdf
-/xddf
-{3 -1 roll put}bdf
-/xpt
-{exch put}bdf
-/ndf
-{
- exch dup where{
- pop pop pop
- }{
- xdf
- }ifelse
-}def
-/cdndf
-{
- exch dup currentdict exch known{
- pop pop
- }{
- exch def
- }ifelse
-}def
-/gx
-{get exec}bdf
-/ps_level
- /languagelevel where{
- pop systemdict/languagelevel gx
- }{
- 1
- }ifelse
-def
-/level2
- ps_level 2 ge
-def
-/level3
- ps_level 3 ge
-def
-/ps_version
- {version cvr}stopped{-1}if
-def
-/set_gvm
-{currentglobal exch setglobal}bdf
-/reset_gvm
-{setglobal}bdf
-/makereadonlyarray
-{
- /packedarray where{pop packedarray
- }{
- array astore readonly}ifelse
-}bdf
-/map_reserved_ink_name
-{
- dup type/stringtype eq{
- dup/Red eq{
- pop(_Red_)
- }{
- dup/Green eq{
- pop(_Green_)
- }{
- dup/Blue eq{
- pop(_Blue_)
- }{
- dup()cvn eq{
- pop(Process)
- }if
- }ifelse
- }ifelse
- }ifelse
- }if
-}bdf
-/AGMUTIL_GSTATE 22 dict def
-/get_gstate
-{
- AGMUTIL_GSTATE begin
- /AGMUTIL_GSTATE_clr_spc currentcolorspace def
- /AGMUTIL_GSTATE_clr_indx 0 def
- /AGMUTIL_GSTATE_clr_comps 12 array def
- mark currentcolor counttomark
- {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
- /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop
- /AGMUTIL_GSTATE_fnt rootfont def
- /AGMUTIL_GSTATE_lw currentlinewidth def
- /AGMUTIL_GSTATE_lc currentlinecap def
- /AGMUTIL_GSTATE_lj currentlinejoin def
- /AGMUTIL_GSTATE_ml currentmiterlimit def
- currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf
- /AGMUTIL_GSTATE_sa currentstrokeadjust def
- /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
- /AGMUTIL_GSTATE_op currentoverprint def
- /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
- /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
- currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf
- cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf
- /AGMUTIL_GSTATE_ht currenthalftone def
- /AGMUTIL_GSTATE_flt currentflat def
- end
-}def
-/set_gstate
-{
- AGMUTIL_GSTATE begin
- AGMUTIL_GSTATE_clr_spc setcolorspace
- AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
- /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor
- AGMUTIL_GSTATE_fnt setfont
- AGMUTIL_GSTATE_lw setlinewidth
- AGMUTIL_GSTATE_lc setlinecap
- AGMUTIL_GSTATE_lj setlinejoin
- AGMUTIL_GSTATE_ml setmiterlimit
- AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
- AGMUTIL_GSTATE_sa setstrokeadjust
- AGMUTIL_GSTATE_clr_rnd setcolorrendering
- AGMUTIL_GSTATE_op setoverprint
- AGMUTIL_GSTATE_bg cvx setblackgeneration
- AGMUTIL_GSTATE_ucr cvx setundercolorremoval
- AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
- AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
- AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or
- {
- currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne
- {
- mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark
- }if
- }{
- AGMUTIL_GSTATE_ht sethalftone
- }ifelse
- AGMUTIL_GSTATE_flt setflat
- end
-}def
-/get_gstate_and_matrix
-{
- AGMUTIL_GSTATE begin
- /AGMUTIL_GSTATE_ctm matrix currentmatrix def
- end
- get_gstate
-}def
-/set_gstate_and_matrix
-{
- set_gstate
- AGMUTIL_GSTATE begin
- AGMUTIL_GSTATE_ctm setmatrix
- end
-}def
-/AGMUTIL_str256 256 string def
-/AGMUTIL_src256 256 string def
-/AGMUTIL_dst64 64 string def
-/AGMUTIL_srcLen nd
-/AGMUTIL_ndx nd
-/AGMUTIL_cpd nd
-/capture_cpd{
- //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf
-}def
-/thold_halftone
-{
- level3
- {sethalftone currenthalftone}
- {
- dup/HalftoneType get 3 eq
- {
- sethalftone currenthalftone
- }{
- begin
- Width Height mul{
- Thresholds read{pop}if
- }repeat
- end
- currenthalftone
- }ifelse
- }ifelse
-}def
-/rdcmntline
-{
- currentfile AGMUTIL_str256 readline pop
- (%)anchorsearch{pop}if
-}bdf
-/filter_cmyk
-{
- dup type/filetype ne{
- exch()/SubFileDecode filter
- }{
- exch pop
- }
- ifelse
- [
- exch
- {
- AGMUTIL_src256 readstring pop
- dup length/AGMUTIL_srcLen exch def
- /AGMUTIL_ndx 0 def
- AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
- 1 index exch get
- AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
- /AGMUTIL_ndx AGMUTIL_ndx 1 add def
- }for
- pop
- AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
- }
- bind
- /exec cvx
- ]cvx
-}bdf
-/filter_indexed_devn
-{
- cvi Names length mul names_index add Lookup exch get
-}bdf
-/filter_devn
-{
- 4 dict begin
- /srcStr xdf
- /dstStr xdf
- dup type/filetype ne{
- 0()/SubFileDecode filter
- }if
- [
- exch
- [
- /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx
- currentdict/srcStr get/readstring cvx/pop cvx
- /dup cvx/length cvx 0/gt cvx[
- Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx
- names_index Names length currentdict/srcStr get length 1 sub{
- 1/index cvx/exch cvx/get cvx
- currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx
- Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx
- }for
- currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx
- ]cvx/if cvx
- /end cvx
- ]cvx
- bind
- /exec cvx
- ]cvx
- end
-}bdf
-/AGMUTIL_imagefile nd
-/read_image_file
-{
- AGMUTIL_imagefile 0 setfileposition
- 10 dict begin
- /imageDict xdf
- /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
- /imbufIdx 0 def
- /origDataSource imageDict/DataSource get def
- /origMultipleDataSources imageDict/MultipleDataSources get def
- /origDecode imageDict/Decode get def
- /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def
- imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- {
- /imbufCnt imageDict/DataSource get length def
- /imbufs imbufCnt array def
- 0 1 imbufCnt 1 sub{
- /imbufIdx xdf
- imbufs imbufIdx imbufLen string put
- imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put
- }for
- DeviceN_PS2{
- imageDict begin
- /DataSource[DataSource/devn_sep_datasource cvx]cvx def
- /MultipleDataSources false def
- /Decode[0 1]def
- end
- }if
- }{
- /imbuf imbufLen string def
- Indexed_DeviceN level3 not and DeviceN_NoneName or{
- /srcDataStrs[imageDict begin
- currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
- {
- Width Decode length 2 div mul cvi string
- }repeat
- end]def
- imageDict begin
- /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def
- /Decode[0 1]def
- end
- }{
- imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put
- imageDict/Decode[0 1]put
- }ifelse
- }ifelse
- imageDict exch
- load exec
- imageDict/DataSource origDataSource put
- imageDict/MultipleDataSources origMultipleDataSources put
- imageDict/Decode origDecode put
- end
-}bdf
-/write_image_file
-{
- begin
- {(AGMUTIL_imagefile)(w+)file}stopped{
- false
- }{
- Adobe_AGM_Utils/AGMUTIL_imagefile xddf
- 2 dict begin
- /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
- MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{
- /imbuf imbufLen string def
- }if
- 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{
- pop
- MultipleDataSources{
- 0 1 DataSource length 1 sub{
- DataSource type dup
- /arraytype eq{
- pop DataSource exch gx
- }{
- /filetype eq{
- DataSource exch get imbuf readstring pop
- }{
- DataSource exch get
- }ifelse
- }ifelse
- AGMUTIL_imagefile exch writestring
- }for
- }{
- DataSource type dup
- /arraytype eq{
- pop DataSource exec
- }{
- /filetype eq{
- DataSource imbuf readstring pop
- }{
- DataSource
- }ifelse
- }ifelse
- AGMUTIL_imagefile exch writestring
- }ifelse
- }for
- end
- true
- }ifelse
- end
-}bdf
-/close_image_file
-{
- AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile
-}def
-statusdict/product known userdict/AGMP_current_show known not and{
- /pstr statusdict/product get def
- pstr(HP LaserJet 2200)eq
- pstr(HP LaserJet 4000 Series)eq or
- pstr(HP LaserJet 4050 Series )eq or
- pstr(HP LaserJet 8000 Series)eq or
- pstr(HP LaserJet 8100 Series)eq or
- pstr(HP LaserJet 8150 Series)eq or
- pstr(HP LaserJet 5000 Series)eq or
- pstr(HP LaserJet 5100 Series)eq or
- pstr(HP Color LaserJet 4500)eq or
- pstr(HP Color LaserJet 4600)eq or
- pstr(HP LaserJet 5Si)eq or
- pstr(HP LaserJet 1200 Series)eq or
- pstr(HP LaserJet 1300 Series)eq or
- pstr(HP LaserJet 4100 Series)eq or
- {
- userdict/AGMP_current_show/show load put
- userdict/show{
- currentcolorspace 0 get
- /Pattern eq
- {false charpath f}
- {AGMP_current_show}ifelse
- }put
- }if
- currentdict/pstr undef
-}if
-/consumeimagedata
-{
- begin
- AGMIMG_init_common
- currentdict/MultipleDataSources known not
- {/MultipleDataSources false def}if
- MultipleDataSources
- {
- DataSource 0 get type
- dup/filetype eq
- {
- 1 dict begin
- /flushbuffer Width cvi string def
- 1 1 Height cvi
- {
- pop
- 0 1 DataSource length 1 sub
- {
- DataSource exch get
- flushbuffer readstring pop pop
- }for
- }for
- end
- }if
- dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and
- {
- Width Height mul cvi
- {
- 0 1 DataSource length 1 sub
- {dup DataSource exch gx length exch 0 ne{pop}if}for
- dup 0 eq
- {pop exit}if
- sub dup 0 le
- {exit}if
- }loop
- pop
- }if
- }
- {
- /DataSource load type
- dup/filetype eq
- {
- 1 dict begin
- /flushbuffer Width Decode length 2 idiv mul cvi string def
- 1 1 Height{pop DataSource flushbuffer readstring pop pop}for
- end
- }if
- dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and
- {
- Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
- {
- DataSource length dup 0 eq
- {pop exit}if
- sub dup 0 le
- {exit}if
- }loop
- pop
- }if
- }ifelse
- end
-}bdf
-/addprocs
-{
- 2{/exec load}repeat
- 3 1 roll
- [5 1 roll]bind cvx
-}def
-/modify_halftone_xfer
-{
- currenthalftone dup length dict copy begin
- currentdict 2 index known{
- 1 index load dup length dict copy begin
- currentdict/TransferFunction known{
- /TransferFunction load
- }{
- currenttransfer
- }ifelse
- addprocs/TransferFunction xdf
- currentdict end def
- currentdict end sethalftone
- }{
- currentdict/TransferFunction known{
- /TransferFunction load
- }{
- currenttransfer
- }ifelse
- addprocs/TransferFunction xdf
- currentdict end sethalftone
- pop
- }ifelse
-}def
-/clonearray
-{
- dup xcheck exch
- dup length array exch
- Adobe_AGM_Core/AGMCORE_tmp -1 ddf
- {
- Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf
- dup type/dicttype eq
- {
- Adobe_AGM_Core/AGMCORE_tmp get
- exch
- clonedict
- Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
- }if
- dup type/arraytype eq
- {
- Adobe_AGM_Core/AGMCORE_tmp get exch
- clonearray
- Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
- }if
- exch dup
- Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
- }forall
- exch{cvx}if
-}bdf
-/clonedict
-{
- dup length dict
- begin
- {
- dup type/dicttype eq
- {clonedict}if
- dup type/arraytype eq
- {clonearray}if
- def
- }forall
- currentdict
- end
-}bdf
-/DeviceN_PS2
-{
- /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and
-}bdf
-/Indexed_DeviceN
-{
- /indexed_colorspace_dict AGMCORE_gget dup null ne{
- dup/CSDBase known{
- /CSDBase get/CSD get_res/Names known
- }{
- pop false
- }ifelse
- }{
- pop false
- }ifelse
-}bdf
-/DeviceN_NoneName
-{
- /Names where{
- pop
- false Names
- {
- (None)eq or
- }forall
- }{
- false
- }ifelse
-}bdf
-/DeviceN_PS2_inRip_seps
-{
- /AGMCORE_in_rip_sep where
- {
- pop dup type dup/arraytype eq exch/packedarraytype eq or
- {
- dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and
- {
- /currentcolorspace exch AGMCORE_gput
- false
- }{
- true
- }ifelse
- }{
- true
- }ifelse
- }{
- true
- }ifelse
-}bdf
-/base_colorspace_type
-{
- dup type/arraytype eq{0 get}if
-}bdf
-/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
-{
- /pdfmark_5{cleartomark}bind def
-}{
- /pdfmark_5{pdfmark}bind def
-}ifelse
-/ReadBypdfmark_5
-{
- currentfile exch 0 exch/SubFileDecode filter
- /currentdistillerparams where
- {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
- {flushfile cleartomark}
- {/PUT pdfmark}ifelse
-}bdf
-/ReadBypdfmark_5_string
-{
- 2 dict begin
- /makerString exch def string/tmpString exch def
- {
- currentfile tmpString readline not{pop exit}if
- makerString anchorsearch
- {
- pop pop cleartomark exit
- }{
- 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5
- }ifelse
- }loop
- end
-}bdf
-/xpdfm
-{
- {
- dup 0 get/Label eq
- {
- aload length[exch 1 add 1 roll/PAGELABEL
- }{
- aload pop
- [{ThisPage}<<5 -2 roll>>/PUT
- }ifelse
- pdfmark_5
- }forall
-}bdf
-/lmt{
- dup 2 index le{exch}if pop dup 2 index ge{exch}if pop
-}bdf
-/int{
- dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop
-}bdf
-/ds{
- Adobe_AGM_Utils begin
-}bdf
-/dt{
- currentdict Adobe_AGM_Utils eq{
- end
- }if
-}bdf
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-%%BeginResource: procset Adobe_AGM_Core 2.0 0
-%%Version: 2.0 0
-%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{
- currentpacking
- true setpacking
-}if
-userdict/Adobe_AGM_Core 209 dict dup begin put
-/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def
-/AGMCORE_str256 256 string def
-/AGMCORE_save nd
-/AGMCORE_graphicsave nd
-/AGMCORE_c 0 def
-/AGMCORE_m 0 def
-/AGMCORE_y 0 def
-/AGMCORE_k 0 def
-/AGMCORE_cmykbuf 4 array def
-/AGMCORE_screen[currentscreen]cvx def
-/AGMCORE_tmp 0 def
-/AGMCORE_&setgray nd
-/AGMCORE_&setcolor nd
-/AGMCORE_&setcolorspace nd
-/AGMCORE_&setcmykcolor nd
-/AGMCORE_cyan_plate nd
-/AGMCORE_magenta_plate nd
-/AGMCORE_yellow_plate nd
-/AGMCORE_black_plate nd
-/AGMCORE_plate_ndx nd
-/AGMCORE_get_ink_data nd
-/AGMCORE_is_cmyk_sep nd
-/AGMCORE_host_sep nd
-/AGMCORE_avoid_L2_sep_space nd
-/AGMCORE_distilling nd
-/AGMCORE_composite_job nd
-/AGMCORE_producing_seps nd
-/AGMCORE_ps_level -1 def
-/AGMCORE_ps_version -1 def
-/AGMCORE_environ_ok nd
-/AGMCORE_CSD_cache 0 dict def
-/AGMCORE_currentoverprint false def
-/AGMCORE_deltaX nd
-/AGMCORE_deltaY nd
-/AGMCORE_name nd
-/AGMCORE_sep_special nd
-/AGMCORE_err_strings 4 dict def
-/AGMCORE_cur_err nd
-/AGMCORE_current_spot_alias false def
-/AGMCORE_inverting false def
-/AGMCORE_feature_dictCount nd
-/AGMCORE_feature_opCount nd
-/AGMCORE_feature_ctm nd
-/AGMCORE_ConvertToProcess false def
-/AGMCORE_Default_CTM matrix def
-/AGMCORE_Default_PageSize nd
-/AGMCORE_Default_flatness nd
-/AGMCORE_currentbg nd
-/AGMCORE_currentucr nd
-/AGMCORE_pattern_paint_type 0 def
-/knockout_unitsq nd
-currentglobal true setglobal
-[/CSA/Gradient/Procedure]
-{
- /Generic/Category findresource dup length dict copy/Category defineresource pop
-}forall
-setglobal
-/AGMCORE_key_known
-{
- where{
- /Adobe_AGM_Core_Id known
- }{
- false
- }ifelse
-}ndf
-/flushinput
-{
- save
- 2 dict begin
- /CompareBuffer 3 -1 roll def
- /readbuffer 256 string def
- mark
- {
- currentfile readbuffer{readline}stopped
- {cleartomark mark}
- {
- not
- {pop exit}
- if
- CompareBuffer eq
- {exit}
- if
- }ifelse
- }loop
- cleartomark
- end
- restore
-}bdf
-/getspotfunction
-{
- AGMCORE_screen exch pop exch pop
- dup type/dicttype eq{
- dup/HalftoneType get 1 eq{
- /SpotFunction get
- }{
- dup/HalftoneType get 2 eq{
- /GraySpotFunction get
- }{
- pop
- {
- abs exch abs 2 copy add 1 gt{
- 1 sub dup mul exch 1 sub dup mul add 1 sub
- }{
- dup mul exch dup mul add 1 exch sub
- }ifelse
- }bind
- }ifelse
- }ifelse
- }if
-}def
-/np
-{newpath}bdf
-/clp_npth
-{clip np}def
-/eoclp_npth
-{eoclip np}def
-/npth_clp
-{np clip}def
-/graphic_setup
-{
- /AGMCORE_graphicsave save store
- concat
- 0 setgray
- 0 setlinecap
- 0 setlinejoin
- 1 setlinewidth
- []0 setdash
- 10 setmiterlimit
- np
- false setoverprint
- false setstrokeadjust
- //Adobe_AGM_Core/spot_alias gx
- /Adobe_AGM_Image where{
- pop
- Adobe_AGM_Image/spot_alias 2 copy known{
- gx
- }{
- pop pop
- }ifelse
- }if
- /sep_colorspace_dict null AGMCORE_gput
- 100 dict begin
- /dictstackcount countdictstack def
- /showpage{}def
- mark
-}def
-/graphic_cleanup
-{
- cleartomark
- dictstackcount 1 countdictstack 1 sub{end}for
- end
- AGMCORE_graphicsave restore
-}def
-/compose_error_msg
-{
- grestoreall initgraphics
- /Helvetica findfont 10 scalefont setfont
- /AGMCORE_deltaY 100 def
- /AGMCORE_deltaX 310 def
- clippath pathbbox np pop pop 36 add exch 36 add exch moveto
- 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
- 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
- 0 AGMCORE_&setgray
- gsave 1 AGMCORE_&setgray fill grestore
- 1 setlinewidth gsave stroke grestore
- currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
- /AGMCORE_deltaY 12 def
- /AGMCORE_tmp 0 def
- AGMCORE_err_strings exch get
- {
- dup 32 eq
- {
- pop
- AGMCORE_str256 0 AGMCORE_tmp getinterval
- stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
- {
- currentpoint AGMCORE_deltaY sub exch pop
- clippath pathbbox pop pop pop 44 add exch moveto
- }if
- AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show
- 0 1 AGMCORE_str256 length 1 sub
- {
- AGMCORE_str256 exch 0 put
- }for
- /AGMCORE_tmp 0 def
- }{
- AGMCORE_str256 exch AGMCORE_tmp xpt
- /AGMCORE_tmp AGMCORE_tmp 1 add def
- }ifelse
- }forall
-}bdf
-/AGMCORE_CMYKDeviceNColorspaces[
- [/Separation/None/DeviceCMYK{0 0 0}]
- [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind]
- [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind]
- [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind]
- [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind]
- [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind]
- [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind]
- [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind]
- [/Separation(Cyan)/DeviceCMYK{0 0 0}]
- [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind]
- [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind]
- [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind]
- [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}]
- [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind]
- [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}]
- [/DeviceCMYK]
-]def
-/ds{
- Adobe_AGM_Core begin
- /currentdistillerparams where
- {
- pop currentdistillerparams/CoreDistVersion get 5000 lt
- {<</DetectBlends false>>setdistillerparams}if
- }if
- /AGMCORE_ps_version xdf
- /AGMCORE_ps_level xdf
- errordict/AGM_handleerror known not{
- errordict/AGM_handleerror errordict/handleerror get put
- errordict/handleerror{
- Adobe_AGM_Core begin
- $error/newerror get AGMCORE_cur_err null ne and{
- $error/newerror false put
- AGMCORE_cur_err compose_error_msg
- }if
- $error/newerror true put
- end
- errordict/AGM_handleerror get exec
- }bind put
- }if
- /AGMCORE_environ_ok
- ps_level AGMCORE_ps_level ge
- ps_version AGMCORE_ps_version ge and
- AGMCORE_ps_level -1 eq or
- def
- AGMCORE_environ_ok not
- {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
- /AGMCORE_&setgray systemdict/setgray get def
- level2{
- /AGMCORE_&setcolor systemdict/setcolor get def
- /AGMCORE_&setcolorspace systemdict/setcolorspace get def
- }if
- /AGMCORE_currentbg currentblackgeneration def
- /AGMCORE_currentucr currentundercolorremoval def
- /AGMCORE_Default_flatness currentflat def
- /AGMCORE_distilling
- /product where{
- pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
- }{
- false
- }ifelse
- def
- /AGMCORE_GSTATE AGMCORE_key_known not{
- /AGMCORE_GSTATE 21 dict def
- /AGMCORE_tmpmatrix matrix def
- /AGMCORE_gstack 32 array def
- /AGMCORE_gstackptr 0 def
- /AGMCORE_gstacksaveptr 0 def
- /AGMCORE_gstackframekeys 14 def
- /AGMCORE_&gsave/gsave ldf
- /AGMCORE_&grestore/grestore ldf
- /AGMCORE_&grestoreall/grestoreall ldf
- /AGMCORE_&save/save ldf
- /AGMCORE_&setoverprint/setoverprint ldf
- /AGMCORE_gdictcopy{
- begin
- {def}forall
- end
- }def
- /AGMCORE_gput{
- AGMCORE_gstack AGMCORE_gstackptr get
- 3 1 roll
- put
- }def
- /AGMCORE_gget{
- AGMCORE_gstack AGMCORE_gstackptr get
- exch
- get
- }def
- /gsave{
- AGMCORE_&gsave
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gstackptr 1 add
- dup 32 ge{limitcheck}if
- /AGMCORE_gstackptr exch store
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gdictcopy
- }def
- /grestore{
- AGMCORE_&grestore
- AGMCORE_gstackptr 1 sub
- dup AGMCORE_gstacksaveptr lt{1 add}if
- dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known
- {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
- /AGMCORE_gstackptr exch store
- }def
- /grestoreall{
- AGMCORE_&grestoreall
- /AGMCORE_gstackptr AGMCORE_gstacksaveptr store
- }def
- /save{
- AGMCORE_&save
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gstackptr 1 add
- dup 32 ge{limitcheck}if
- /AGMCORE_gstackptr exch store
- /AGMCORE_gstacksaveptr AGMCORE_gstackptr store
- AGMCORE_gstack AGMCORE_gstackptr get
- AGMCORE_gdictcopy
- }def
- /setoverprint{
- dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
- }def
- 0 1 AGMCORE_gstack length 1 sub{
- AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
- }for
- }if
- level3/AGMCORE_&sysshfill AGMCORE_key_known not and
- {
- /AGMCORE_&sysshfill systemdict/shfill get def
- /AGMCORE_&sysmakepattern systemdict/makepattern get def
- /AGMCORE_&usrmakepattern/makepattern load def
- }if
- /currentcmykcolor[0 0 0 0]AGMCORE_gput
- /currentstrokeadjust false AGMCORE_gput
- /currentcolorspace[/DeviceGray]AGMCORE_gput
- /sep_tint 0 AGMCORE_gput
- /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput
- /sep_colorspace_dict null AGMCORE_gput
- /devicen_colorspace_dict null AGMCORE_gput
- /indexed_colorspace_dict null AGMCORE_gput
- /currentcolor_intent()AGMCORE_gput
- /customcolor_tint 1 AGMCORE_gput
- /absolute_colorimetric_crd null AGMCORE_gput
- /relative_colorimetric_crd null AGMCORE_gput
- /saturation_crd null AGMCORE_gput
- /perceptual_crd null AGMCORE_gput
- currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf
- cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf
- <<
- /MaxPatternItem currentsystemparams/MaxPatternCache get
- >>
- setuserparams
- end
-}def
-/ps
-{
- /setcmykcolor where{
- pop
- Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put
- }if
- Adobe_AGM_Core begin
- /setcmykcolor
- {
- 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput
- 1 sub 4 1 roll
- 3{
- 3 index add neg dup 0 lt{
- pop 0
- }if
- 3 1 roll
- }repeat
- setrgbcolor pop
- }ndf
- /currentcmykcolor
- {
- /currentcmykcolor AGMCORE_gget aload pop
- }ndf
- /setoverprint
- {pop}ndf
- /currentoverprint
- {false}ndf
- /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
- /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
- /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
- /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
- /AGMCORE_plate_ndx
- AGMCORE_cyan_plate{
- 0
- }{
- AGMCORE_magenta_plate{
- 1
- }{
- AGMCORE_yellow_plate{
- 2
- }{
- AGMCORE_black_plate{
- 3
- }{
- 4
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_have_reported_unsupported_color_space false def
- /AGMCORE_report_unsupported_color_space
- {
- AGMCORE_have_reported_unsupported_color_space false eq
- {
- (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)==
- Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf
- }if
- }def
- /AGMCORE_composite_job
- AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
- /AGMCORE_in_rip_sep
- /AGMCORE_in_rip_sep where{
- pop AGMCORE_in_rip_sep
- }{
- AGMCORE_distilling
- {
- false
- }{
- userdict/Adobe_AGM_OnHost_Seps known{
- false
- }{
- level2{
- currentpagedevice/Separations 2 copy known{
- get
- }{
- pop pop false
- }ifelse
- }{
- false
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
- /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
- /AGM_preserve_spots
- /AGM_preserve_spots where{
- pop AGM_preserve_spots
- }{
- AGMCORE_distilling AGMCORE_producing_seps or
- }ifelse
- def
- /AGM_is_distiller_preserving_spotimages
- {
- currentdistillerparams/PreserveOverprintSettings known
- {
- currentdistillerparams/PreserveOverprintSettings get
- {
- currentdistillerparams/ColorConversionStrategy known
- {
- currentdistillerparams/ColorConversionStrategy get
- /sRGB ne
- }{
- true
- }ifelse
- }{
- false
- }ifelse
- }{
- false
- }ifelse
- }def
- /convert_spot_to_process where{pop}{
- /convert_spot_to_process
- {
- //Adobe_AGM_Core begin
- dup map_alias{
- /Name get exch pop
- }if
- dup dup(None)eq exch(All)eq or
- {
- pop false
- }{
- AGMCORE_host_sep
- {
- gsave
- 1 0 0 0 setcmykcolor currentgray 1 exch sub
- 0 1 0 0 setcmykcolor currentgray 1 exch sub
- 0 0 1 0 setcmykcolor currentgray 1 exch sub
- 0 0 0 1 setcmykcolor currentgray 1 exch sub
- add add add 0 eq
- {
- pop false
- }{
- false setoverprint
- current_spot_alias false set_spot_alias
- 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
- set_spot_alias
- currentgray 1 ne
- }ifelse
- grestore
- }{
- AGMCORE_distilling
- {
- pop AGM_is_distiller_preserving_spotimages not
- }{
- //Adobe_AGM_Core/AGMCORE_name xddf
- false
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq
- AGMUTIL_cpd/OverrideSeparations known and
- {
- AGMUTIL_cpd/OverrideSeparations get
- {
- /HqnSpots/ProcSet resourcestatus
- {
- pop pop pop true
- }if
- }if
- }if
- {
- AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not
- }{
- gsave
- [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace
- false
- AGMUTIL_cpd/SeparationColorNames 2 copy known
- {
- get
- {AGMCORE_name eq or}forall
- not
- }{
- pop pop pop true
- }ifelse
- grestore
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- end
- }def
- }ifelse
- /convert_to_process where{pop}{
- /convert_to_process
- {
- dup length 0 eq
- {
- pop false
- }{
- AGMCORE_host_sep
- {
- dup true exch
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- dup(Black)eq 3 -1 roll or
- {pop}
- {convert_spot_to_process and}ifelse
- }
- forall
- {
- true exch
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- (Black)eq or and
- }forall
- not
- }{pop false}ifelse
- }{
- false exch
- {
- /PhotoshopDuotoneList where{pop false}{true}ifelse
- {
- dup(Cyan)eq exch
- dup(Magenta)eq 3 -1 roll or exch
- dup(Yellow)eq 3 -1 roll or exch
- dup(Black)eq 3 -1 roll or
- {pop}
- {convert_spot_to_process or}ifelse
- }
- {
- convert_spot_to_process or
- }
- ifelse
- }
- forall
- }ifelse
- }ifelse
- }def
- }ifelse
- /AGMCORE_avoid_L2_sep_space
- version cvr 2012 lt
- level2 and
- AGMCORE_producing_seps not and
- def
- /AGMCORE_is_cmyk_sep
- AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
- def
- /AGM_avoid_0_cmyk where{
- pop AGM_avoid_0_cmyk
- }{
- AGM_preserve_spots
- userdict/Adobe_AGM_OnHost_Seps known
- userdict/Adobe_AGM_InRip_Seps known or
- not and
- }ifelse
- {
- /setcmykcolor[
- {
- 4 copy add add add 0 eq currentoverprint and{
- pop 0.0005
- }if
- }/exec cvx
- /AGMCORE_&setcmykcolor load dup type/operatortype ne{
- /exec cvx
- }if
- ]cvx def
- }if
- /AGMCORE_IsSeparationAProcessColor
- {
- dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or
- }def
- AGMCORE_host_sep{
- /setcolortransfer
- {
- AGMCORE_cyan_plate{
- pop pop pop
- }{
- AGMCORE_magenta_plate{
- 4 3 roll pop pop pop
- }{
- AGMCORE_yellow_plate{
- 4 2 roll pop pop pop
- }{
- 4 1 roll pop pop pop
- }ifelse
- }ifelse
- }ifelse
- settransfer
- }
- def
- /AGMCORE_get_ink_data
- AGMCORE_cyan_plate{
- {pop pop pop}
- }{
- AGMCORE_magenta_plate{
- {4 3 roll pop pop pop}
- }{
- AGMCORE_yellow_plate{
- {4 2 roll pop pop pop}
- }{
- {4 1 roll pop pop pop}
- }ifelse
- }ifelse
- }ifelse
- def
- /AGMCORE_RemoveProcessColorNames
- {
- 1 dict begin
- /filtername
- {
- dup/Cyan eq 1 index(Cyan)eq or
- {pop(_cyan_)}if
- dup/Magenta eq 1 index(Magenta)eq or
- {pop(_magenta_)}if
- dup/Yellow eq 1 index(Yellow)eq or
- {pop(_yellow_)}if
- dup/Black eq 1 index(Black)eq or
- {pop(_black_)}if
- }def
- dup type/arraytype eq
- {[exch{filtername}forall]}
- {filtername}ifelse
- end
- }def
- level3{
- /AGMCORE_IsCurrentColor
- {
- dup AGMCORE_IsSeparationAProcessColor
- {
- AGMCORE_plate_ndx 0 eq
- {dup(Cyan)eq exch/Cyan eq or}if
- AGMCORE_plate_ndx 1 eq
- {dup(Magenta)eq exch/Magenta eq or}if
- AGMCORE_plate_ndx 2 eq
- {dup(Yellow)eq exch/Yellow eq or}if
- AGMCORE_plate_ndx 3 eq
- {dup(Black)eq exch/Black eq or}if
- AGMCORE_plate_ndx 4 eq
- {pop false}if
- }{
- gsave
- false setoverprint
- current_spot_alias false set_spot_alias
- 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
- set_spot_alias
- currentgray 1 ne
- grestore
- }ifelse
- }def
- /AGMCORE_filter_functiondatasource
- {
- 5 dict begin
- /data_in xdf
- data_in type/stringtype eq
- {
- /ncomp xdf
- /comp xdf
- /string_out data_in length ncomp idiv string def
- 0 ncomp data_in length 1 sub
- {
- string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
- }for
- string_out
- }{
- string/string_in xdf
- /string_out 1 string def
- /component xdf
- [
- data_in string_in/readstring cvx
- [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx
- [/pop cvx()]cvx/ifelse cvx
- ]cvx/ReusableStreamDecode filter
- }ifelse
- end
- }def
- /AGMCORE_separateShadingFunction
- {
- 2 dict begin
- /paint? xdf
- /channel xdf
- dup type/dicttype eq
- {
- begin
- FunctionType 0 eq
- {
- /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
- currentdict/Decode known
- {/Decode Decode channel 2 mul 2 getinterval def}if
- paint? not
- {/Decode[1 1]def}if
- }if
- FunctionType 2 eq
- {
- paint?
- {
- /C0[C0 channel get 1 exch sub]def
- /C1[C1 channel get 1 exch sub]def
- }{
- /C0[1]def
- /C1[1]def
- }ifelse
- }if
- FunctionType 3 eq
- {
- /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def
- }if
- currentdict/Range known
- {/Range[0 1]def}if
- currentdict
- end}{
- channel get 0 paint? AGMCORE_separateShadingFunction
- }ifelse
- end
- }def
- /AGMCORE_separateShading
- {
- 3 -1 roll begin
- currentdict/Function known
- {
- currentdict/Background known
- {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
- Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf
- /ColorSpace[/DeviceGray]def
- }{
- ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
- }{
- ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
- }ifelse
- ColorSpace 0 get/Separation eq
- {
- {
- [1/exch cvx/sub cvx]cvx
- }{
- [/pop cvx 1]cvx
- }ifelse
- ColorSpace 3 3 -1 roll put
- pop
- }{
- {
- [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx
- }{
- pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx
- }ifelse
- ColorSpace 3 3 -1 roll bind put
- }ifelse
- ColorSpace 2/DeviceGray put
- }ifelse
- end
- }def
- /AGMCORE_separateShadingDict
- {
- dup/ColorSpace get
- dup type/arraytype ne
- {[exch]}if
- dup 0 get/DeviceCMYK eq
- {
- exch begin
- currentdict
- AGMCORE_cyan_plate
- {0 true}if
- AGMCORE_magenta_plate
- {1 true}if
- AGMCORE_yellow_plate
- {2 true}if
- AGMCORE_black_plate
- {3 true}if
- AGMCORE_plate_ndx 4 eq
- {0 false}if
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- currentdict
- end exch
- }if
- dup 0 get/Separation eq
- {
- exch begin
- ColorSpace 1 get dup/None ne exch/All ne and
- {
- ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
- {
- ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace
- [
- /Separation
- ColorSpace 1 get
- /DeviceGray
- [
- ColorSpace 3 get/exec cvx
- 4 AGMCORE_plate_ndx sub -1/roll cvx
- 4 1/roll cvx
- 3[/pop cvx]cvx/repeat cvx
- 1/exch cvx/sub cvx
- ]cvx
- ]def
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- currentdict 0 false AGMCORE_separateShading
- }if
- }ifelse
- }{
- currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
- 0 exch
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- }ifelse
- }if
- currentdict
- end exch
- }if
- dup 0 get/DeviceN eq
- {
- exch begin
- ColorSpace 1 get convert_to_process
- {
- ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
- {
- /ColorSpace
- [
- /DeviceN
- ColorSpace 1 get
- /DeviceGray
- [
- ColorSpace 3 get/exec cvx
- 4 AGMCORE_plate_ndx sub -1/roll cvx
- 4 1/roll cvx
- 3[/pop cvx]cvx/repeat cvx
- 1/exch cvx/sub cvx
- ]cvx
- ]def
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- currentdict 0 false AGMCORE_separateShading
- /ColorSpace[/DeviceGray]def
- }if
- }ifelse
- }{
- currentdict
- false -1 ColorSpace 1 get
- {
- AGMCORE_IsCurrentColor
- {
- 1 add
- exch pop true exch exit
- }if
- 1 add
- }forall
- exch
- dup not currentoverprint and
- {/AGMCORE_ignoreshade true def}if
- AGMCORE_separateShading
- }ifelse
- currentdict
- end exch
- }if
- dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not
- {
- exch begin
- ColorSpace dup type/arraytype eq
- {0 get}if
- /DeviceGray ne
- {
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate not
- {
- ColorSpace 0 get/CIEBasedA eq
- {
- /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def
- }if
- ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or
- {
- /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def
- }if
- ColorSpace 0 get/CIEBasedDEFG eq
- {
- /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
- }if
- currentdict 0 false AGMCORE_separateShading
- }if
- }if
- currentdict
- end exch
- }if
- pop
- dup/AGMCORE_ignoreshade known
- {
- begin
- /ColorSpace[/Separation(None)/DeviceGray{}]def
- currentdict end
- }if
- }def
- /shfill
- {
- AGMCORE_separateShadingDict
- dup/AGMCORE_ignoreshade known
- {pop}
- {AGMCORE_&sysshfill}ifelse
- }def
- /makepattern
- {
- exch
- dup/PatternType get 2 eq
- {
- clonedict
- begin
- /Shading Shading AGMCORE_separateShadingDict def
- Shading/AGMCORE_ignoreshade known
- currentdict end exch
- {pop<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
- exch AGMCORE_&sysmakepattern
- }{
- exch AGMCORE_&usrmakepattern
- }ifelse
- }def
- }if
- }if
- AGMCORE_in_rip_sep{
- /setcustomcolor
- {
- exch aload pop
- dup 7 1 roll inRip_spot_has_ink not {
- 4{4 index mul 4 1 roll}
- repeat
- /DeviceCMYK setcolorspace
- 6 -2 roll pop pop
- }{
- //Adobe_AGM_Core begin
- /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
- end
- [/Separation 4 -1 roll/DeviceCMYK
- {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
- ]
- setcolorspace
- }ifelse
- setcolor
- }ndf
- /setseparationgray
- {
- [/Separation(All)/DeviceGray{}]setcolorspace_opt
- 1 exch sub setcolor
- }ndf
- }{
- /setseparationgray
- {
- AGMCORE_&setgray
- }ndf
- }ifelse
- /findcmykcustomcolor
- {
- 5 makereadonlyarray
- }ndf
- /setcustomcolor
- {
- exch aload pop pop
- 4{4 index mul 4 1 roll}repeat
- setcmykcolor pop
- }ndf
- /has_color
- /colorimage where{
- AGMCORE_producing_seps{
- pop true
- }{
- systemdict eq
- }ifelse
- }{
- false
- }ifelse
- def
- /map_index
- {
- 1 index mul exch getinterval{255 div}forall
- }bdf
- /map_indexed_devn
- {
- Lookup Names length 3 -1 roll cvi map_index
- }bdf
- /n_color_components
- {
- base_colorspace_type
- dup/DeviceGray eq{
- pop 1
- }{
- /DeviceCMYK eq{
- 4
- }{
- 3
- }ifelse
- }ifelse
- }bdf
- level2{
- /mo/moveto ldf
- /li/lineto ldf
- /cv/curveto ldf
- /knockout_unitsq
- {
- 1 setgray
- 0 0 1 1 rectfill
- }def
- level2/setcolorspace AGMCORE_key_known not and{
- /AGMCORE_&&&setcolorspace/setcolorspace ldf
- /AGMCORE_ReplaceMappedColor
- {
- dup type dup/arraytype eq exch/packedarraytype eq or
- {
- /AGMCORE_SpotAliasAry2 where{
- begin
- dup 0 get dup/Separation eq
- {
- pop
- dup length array copy
- dup dup 1 get
- current_spot_alias
- {
- dup map_alias
- {
- false set_spot_alias
- dup 1 exch setsepcolorspace
- true set_spot_alias
- begin
- /sep_colorspace_dict currentdict AGMCORE_gput
- pop pop pop
- [
- /Separation Name
- CSA map_csa
- MappedCSA
- /sep_colorspace_proc load
- ]
- dup Name
- end
- }if
- }if
- map_reserved_ink_name 1 xpt
- }{
- /DeviceN eq
- {
- dup length array copy
- dup dup 1 get[
- exch{
- current_spot_alias{
- dup map_alias{
- /Name get exch pop
- }if
- }if
- map_reserved_ink_name
- }forall
- ]1 xpt
- }if
- }ifelse
- end
- }if
- }if
- }def
- /setcolorspace
- {
- dup type dup/arraytype eq exch/packedarraytype eq or
- {
- dup 0 get/Indexed eq
- {
- AGMCORE_distilling
- {
- /PhotoshopDuotoneList where
- {
- pop false
- }{
- true
- }ifelse
- }{
- true
- }ifelse
- {
- aload pop 3 -1 roll
- AGMCORE_ReplaceMappedColor
- 3 1 roll 4 array astore
- }if
- }{
- AGMCORE_ReplaceMappedColor
- }ifelse
- }if
- DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
- }def
- }if
- }{
- /adj
- {
- currentstrokeadjust{
- transform
- 0.25 sub round 0.25 add exch
- 0.25 sub round 0.25 add exch
- itransform
- }if
- }def
- /mo{
- adj moveto
- }def
- /li{
- adj lineto
- }def
- /cv{
- 6 2 roll adj
- 6 2 roll adj
- 6 2 roll adj curveto
- }def
- /knockout_unitsq
- {
- 1 setgray
- 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
- }def
- /currentstrokeadjust{
- /currentstrokeadjust AGMCORE_gget
- }def
- /setstrokeadjust{
- /currentstrokeadjust exch AGMCORE_gput
- }def
- /setcolorspace
- {
- /currentcolorspace exch AGMCORE_gput
- }def
- /currentcolorspace
- {
- /currentcolorspace AGMCORE_gget
- }def
- /setcolor_devicecolor
- {
- base_colorspace_type
- dup/DeviceGray eq{
- pop setgray
- }{
- /DeviceCMYK eq{
- setcmykcolor
- }{
- setrgbcolor
- }ifelse
- }ifelse
- }def
- /setcolor
- {
- currentcolorspace 0 get
- dup/DeviceGray ne{
- dup/DeviceCMYK ne{
- dup/DeviceRGB ne{
- dup/Separation eq{
- pop
- currentcolorspace 3 gx
- currentcolorspace 2 get
- }{
- dup/Indexed eq{
- pop
- currentcolorspace 3 get dup type/stringtype eq{
- currentcolorspace 1 get n_color_components
- 3 -1 roll map_index
- }{
- exec
- }ifelse
- currentcolorspace 1 get
- }{
- /AGMCORE_cur_err/AGMCORE_invalid_color_space def
- AGMCORE_invalid_color_space
- }ifelse
- }ifelse
- }if
- }if
- }if
- setcolor_devicecolor
- }def
- }ifelse
- /sop/setoverprint ldf
- /lw/setlinewidth ldf
- /lc/setlinecap ldf
- /lj/setlinejoin ldf
- /ml/setmiterlimit ldf
- /dsh/setdash ldf
- /sadj/setstrokeadjust ldf
- /gry/setgray ldf
- /rgb/setrgbcolor ldf
- /cmyk[
- /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
- /setcmykcolor load dup type/operatortype ne{/exec cvx}if
- ]cvx bdf
- level3 AGMCORE_host_sep not and{
- /nzopmsc{
- 6 dict begin
- /kk exch def
- /yy exch def
- /mm exch def
- /cc exch def
- /sum 0 def
- cc 0 ne{/sum sum 2#1000 or def cc}if
- mm 0 ne{/sum sum 2#0100 or def mm}if
- yy 0 ne{/sum sum 2#0010 or def yy}if
- kk 0 ne{/sum sum 2#0001 or def kk}if
- AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
- sum 0 eq{0}if
- end
- setcolor
- }bdf
- }{
- /nzopmsc/cmyk ldf
- }ifelse
- /sep/setsepcolor ldf
- /devn/setdevicencolor ldf
- /idx/setindexedcolor ldf
- /colr/setcolor ldf
- /csacrd/set_csa_crd ldf
- /sepcs/setsepcolorspace ldf
- /devncs/setdevicencolorspace ldf
- /idxcs/setindexedcolorspace ldf
- /cp/closepath ldf
- /clp/clp_npth ldf
- /eclp/eoclp_npth ldf
- /f/fill ldf
- /ef/eofill ldf
- /@/stroke ldf
- /nclp/npth_clp ldf
- /gset/graphic_setup ldf
- /gcln/graphic_cleanup ldf
- /ct/concat ldf
- /cf/currentfile ldf
- /fl/filter ldf
- /rs/readstring ldf
- /AGMCORE_def_ht currenthalftone def
- /clonedict Adobe_AGM_Utils begin/clonedict load end def
- /clonearray Adobe_AGM_Utils begin/clonearray load end def
- currentdict{
- dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
- bind
- }if
- def
- }forall
- /getrampcolor
- {
- /indx exch def
- 0 1 NumComp 1 sub
- {
- dup
- Samples exch get
- dup type/stringtype eq{indx get}if
- exch
- Scaling exch get aload pop
- 3 1 roll
- mul add
- }for
- ColorSpaceFamily/Separation eq
- {sep}
- {
- ColorSpaceFamily/DeviceN eq
- {devn}{setcolor}ifelse
- }ifelse
- }bdf
- /sssetbackground{
- aload pop
- ColorSpaceFamily/Separation eq
- {sep}
- {
- ColorSpaceFamily/DeviceN eq
- {devn}{setcolor}ifelse
- }ifelse
- }bdf
- /RadialShade
- {
- 40 dict begin
- /ColorSpaceFamily xdf
- /background xdf
- /ext1 xdf
- /ext0 xdf
- /BBox xdf
- /r2 xdf
- /c2y xdf
- /c2x xdf
- /r1 xdf
- /c1y xdf
- /c1x xdf
- /rampdict xdf
- /setinkoverprint where{pop/setinkoverprint{pop}def}if
- gsave
- BBox length 0 gt
- {
- np
- BBox 0 get BBox 1 get moveto
- BBox 2 get BBox 0 get sub 0 rlineto
- 0 BBox 3 get BBox 1 get sub rlineto
- BBox 2 get BBox 0 get sub neg 0 rlineto
- closepath
- clip
- np
- }if
- c1x c2x eq
- {
- c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
- }{
- /slope c2y c1y sub c2x c1x sub div def
- /theta slope 1 atan def
- c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
- c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
- }ifelse
- gsave
- clippath
- c1x c1y translate
- theta rotate
- -90 rotate
- {pathbbox}stopped
- {0 0 0 0}if
- /yMax xdf
- /xMax xdf
- /yMin xdf
- /xMin xdf
- grestore
- xMax xMin eq yMax yMin eq or
- {
- grestore
- end
- }{
- /max{2 copy gt{pop}{exch pop}ifelse}bdf
- /min{2 copy lt{pop}{exch pop}ifelse}bdf
- rampdict begin
- 40 dict begin
- background length 0 gt{background sssetbackground gsave clippath fill grestore}if
- gsave
- c1x c1y translate
- theta rotate
- -90 rotate
- /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
- /c1y 0 def
- /c1x 0 def
- /c2x 0 def
- ext0
- {
- 0 getrampcolor
- c2y r2 add r1 sub 0.0001 lt
- {
- c1x c1y r1 360 0 arcn
- pathbbox
- /aymax exch def
- /axmax exch def
- /aymin exch def
- /axmin exch def
- /bxMin xMin axmin min def
- /byMin yMin aymin min def
- /bxMax xMax axmax max def
- /byMax yMax aymax max def
- bxMin byMin moveto
- bxMax byMin lineto
- bxMax byMax lineto
- bxMin byMax lineto
- bxMin byMin lineto
- eofill
- }{
- c2y r1 add r2 le
- {
- c1x c1y r1 0 360 arc
- fill
- }
- {
- c2x c2y r2 0 360 arc fill
- r1 r2 eq
- {
- /p1x r1 neg def
- /p1y c1y def
- /p2x r1 def
- /p2y c1y def
- p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
- fill
- }{
- /AA r2 r1 sub c2y div def
- AA -1 eq
- {/theta 89.99 def}
- {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
- ifelse
- /SS1 90 theta add dup sin exch cos div def
- /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
- /p1y p1x SS1 div neg def
- /SS2 90 theta sub dup sin exch cos div def
- /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
- /p2y p2x SS2 div neg def
- r1 r2 gt
- {
- /L1maxX p1x yMin p1y sub SS1 div add def
- /L2maxX p2x yMin p2y sub SS2 div add def
- }{
- /L1maxX 0 def
- /L2maxX 0 def
- }ifelse
- p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
- L1maxX L1maxX p1x sub SS1 mul p1y add lineto
- fill
- }ifelse
- }ifelse
- }ifelse
- }if
- c1x c2x sub dup mul
- c1y c2y sub dup mul
- add 0.5 exp
- 0 dtransform
- dup mul exch dup mul add 0.5 exp 72 div
- 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 1 index 1 index lt{exch}if pop
- /hires xdf
- hires mul
- /numpix xdf
- /numsteps NumSamples def
- /rampIndxInc 1 def
- /subsampling false def
- numpix 0 ne
- {
- NumSamples numpix div 0.5 gt
- {
- /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
- /rampIndxInc NumSamples 1 sub numsteps div def
- /subsampling true def
- }if
- }if
- /xInc c2x c1x sub numsteps div def
- /yInc c2y c1y sub numsteps div def
- /rInc r2 r1 sub numsteps div def
- /cx c1x def
- /cy c1y def
- /radius r1 def
- np
- xInc 0 eq yInc 0 eq rInc 0 eq and and
- {
- 0 getrampcolor
- cx cy radius 0 360 arc
- stroke
- NumSamples 1 sub getrampcolor
- cx cy radius 72 hires div add 0 360 arc
- 0 setlinewidth
- stroke
- }{
- 0
- numsteps
- {
- dup
- subsampling{round cvi}if
- getrampcolor
- cx cy radius 0 360 arc
- /cx cx xInc add def
- /cy cy yInc add def
- /radius radius rInc add def
- cx cy radius 360 0 arcn
- eofill
- rampIndxInc add
- }repeat
- pop
- }ifelse
- ext1
- {
- c2y r2 add r1 lt
- {
- c2x c2y r2 0 360 arc
- fill
- }{
- c2y r1 add r2 sub 0.0001 le
- {
- c2x c2y r2 360 0 arcn
- pathbbox
- /aymax exch def
- /axmax exch def
- /aymin exch def
- /axmin exch def
- /bxMin xMin axmin min def
- /byMin yMin aymin min def
- /bxMax xMax axmax max def
- /byMax yMax aymax max def
- bxMin byMin moveto
- bxMax byMin lineto
- bxMax byMax lineto
- bxMin byMax lineto
- bxMin byMin lineto
- eofill
- }{
- c2x c2y r2 0 360 arc fill
- r1 r2 eq
- {
- /p1x r2 neg def
- /p1y c2y def
- /p2x r2 def
- /p2y c2y def
- p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
- fill
- }{
- /AA r2 r1 sub c2y div def
- AA -1 eq
- {/theta 89.99 def}
- {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
- ifelse
- /SS1 90 theta add dup sin exch cos div def
- /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
- /p1y c2y p1x SS1 div sub def
- /SS2 90 theta sub dup sin exch cos div def
- /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
- /p2y c2y p2x SS2 div sub def
- r1 r2 lt
- {
- /L1maxX p1x yMax p1y sub SS1 div add def
- /L2maxX p2x yMax p2y sub SS2 div add def
- }{
- /L1maxX 0 def
- /L2maxX 0 def
- }ifelse
- p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
- L1maxX L1maxX p1x sub SS1 mul p1y add lineto
- fill
- }ifelse
- }ifelse
- }ifelse
- }if
- grestore
- grestore
- end
- end
- end
- }ifelse
- }bdf
- /GenStrips
- {
- 40 dict begin
- /ColorSpaceFamily xdf
- /background xdf
- /ext1 xdf
- /ext0 xdf
- /BBox xdf
- /y2 xdf
- /x2 xdf
- /y1 xdf
- /x1 xdf
- /rampdict xdf
- /setinkoverprint where{pop/setinkoverprint{pop}def}if
- gsave
- BBox length 0 gt
- {
- np
- BBox 0 get BBox 1 get moveto
- BBox 2 get BBox 0 get sub 0 rlineto
- 0 BBox 3 get BBox 1 get sub rlineto
- BBox 2 get BBox 0 get sub neg 0 rlineto
- closepath
- clip
- np
- }if
- x1 x2 eq
- {
- y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
- }{
- /slope y2 y1 sub x2 x1 sub div def
- /theta slope 1 atan def
- x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
- x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
- }
- ifelse
- gsave
- clippath
- x1 y1 translate
- theta rotate
- {pathbbox}stopped
- {0 0 0 0}if
- /yMax exch def
- /xMax exch def
- /yMin exch def
- /xMin exch def
- grestore
- xMax xMin eq yMax yMin eq or
- {
- grestore
- end
- }{
- rampdict begin
- 20 dict begin
- background length 0 gt{background sssetbackground gsave clippath fill grestore}if
- gsave
- x1 y1 translate
- theta rotate
- /xStart 0 def
- /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
- /ySpan yMax yMin sub def
- /numsteps NumSamples def
- /rampIndxInc 1 def
- /subsampling false def
- xStart 0 transform
- xEnd 0 transform
- 3 -1 roll
- sub dup mul
- 3 1 roll
- sub dup mul
- add 0.5 exp 72 div
- 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
- 1 index 1 index lt{exch}if pop
- mul
- /numpix xdf
- numpix 0 ne
- {
- NumSamples numpix div 0.5 gt
- {
- /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
- /rampIndxInc NumSamples 1 sub numsteps div def
- /subsampling true def
- }if
- }if
- ext0
- {
- 0 getrampcolor
- xMin xStart lt
- {
- xMin yMin xMin neg ySpan rectfill
- }if
- }if
- /xInc xEnd xStart sub numsteps div def
- /x xStart def
- 0
- numsteps
- {
- dup
- subsampling{round cvi}if
- getrampcolor
- x yMin xInc ySpan rectfill
- /x x xInc add def
- rampIndxInc add
- }repeat
- pop
- ext1{
- xMax xEnd gt
- {
- xEnd yMin xMax xEnd sub ySpan rectfill
- }if
- }if
- grestore
- grestore
- end
- end
- end
- }ifelse
- }bdf
-}def
-/pt
-{
- end
-}def
-/dt{
-}def
-/pgsv{
- //Adobe_AGM_Core/AGMCORE_save save put
-}def
-/pgrs{
- //Adobe_AGM_Core/AGMCORE_save get restore
-}def
-systemdict/findcolorrendering known{
- /findcolorrendering systemdict/findcolorrendering get def
-}if
-systemdict/setcolorrendering known{
- /setcolorrendering systemdict/setcolorrendering get def
-}if
-/test_cmyk_color_plate
-{
- gsave
- setcmykcolor currentgray 1 ne
- grestore
-}def
-/inRip_spot_has_ink
-{
- dup//Adobe_AGM_Core/AGMCORE_name xddf
- convert_spot_to_process not
-}def
-/map255_to_range
-{
- 1 index sub
- 3 -1 roll 255 div mul add
-}def
-/set_csa_crd
-{
- /sep_colorspace_dict null AGMCORE_gput
- begin
- CSA get_csa_by_name setcolorspace_opt
- set_crd
- end
-}
-def
-/map_csa
-{
- currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
- {pop}{get_csa_by_name/MappedCSA xdf}ifelse
-}def
-/setsepcolor
-{
- /sep_colorspace_dict AGMCORE_gget begin
- dup/sep_tint exch AGMCORE_gput
- TintProc
- end
-}def
-/setdevicencolor
-{
- /devicen_colorspace_dict AGMCORE_gget begin
- Names length copy
- Names length 1 sub -1 0
- {
- /devicen_tints AGMCORE_gget 3 1 roll xpt
- }for
- TintProc
- end
-}def
-/sep_colorspace_proc
-{
- /AGMCORE_tmp exch store
- /sep_colorspace_dict AGMCORE_gget begin
- currentdict/Components known{
- Components aload pop
- TintMethod/Lab eq{
- 2{AGMCORE_tmp mul NComponents 1 roll}repeat
- LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
- }{
- TintMethod/Subtractive eq{
- NComponents{
- AGMCORE_tmp mul NComponents 1 roll
- }repeat
- }{
- NComponents{
- 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
- }repeat
- }ifelse
- }ifelse
- }{
- ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
- aload pop
- }ifelse
- end
-}def
-/sep_colorspace_gray_proc
-{
- /AGMCORE_tmp exch store
- /sep_colorspace_dict AGMCORE_gget begin
- GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
- end
-}def
-/sep_proc_name
-{
- dup 0 get
- dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
- pop[/DeviceGray]
- /sep_colorspace_gray_proc
- }{
- /sep_colorspace_proc
- }ifelse
-}def
-/setsepcolorspace
-{
- current_spot_alias{
- dup begin
- Name map_alias{
- exch pop
- }if
- end
- }if
- dup/sep_colorspace_dict exch AGMCORE_gput
- begin
- CSA map_csa
- /AGMCORE_sep_special Name dup()eq exch(All)eq or store
- AGMCORE_avoid_L2_sep_space{
- [/Indexed MappedCSA sep_proc_name 255 exch
- {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
- ]setcolorspace_opt
- /TintProc{
- 255 mul round cvi setcolor
- }bdf
- }{
- MappedCSA 0 get/DeviceCMYK eq
- currentdict/Components known and
- AGMCORE_sep_special not and{
- /TintProc[
- Components aload pop Name findcmykcustomcolor
- /exch cvx/setcustomcolor cvx
- ]cvx bdf
- }{
- AGMCORE_host_sep Name(All)eq and{
- /TintProc{
- 1 exch sub setseparationgray
- }bdf
- }{
- AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
- AGMCORE_host_sep or
- Name()eq and{
- /TintProc[
- MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
- cvx/setcmykcolor cvx
- }{
- cvx/setgray cvx
- }ifelse
- ]cvx bdf
- }{
- AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
- /TintProc[
- /dup cvx
- MappedCSA sep_proc_name cvx exch
- 0 get/DeviceGray eq{
- 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
- }if
- /Name cvx/findcmykcustomcolor cvx/exch cvx
- AGMCORE_host_sep{
- AGMCORE_is_cmyk_sep
- /Name cvx
- /AGMCORE_IsSeparationAProcessColor load/exec cvx
- /not cvx/and cvx
- }{
- Name inRip_spot_has_ink not
- }ifelse
- [
- /pop cvx 1
- ]cvx/if cvx
- /setcustomcolor cvx
- ]cvx bdf
- }{
- /TintProc{setcolor}bdf
- [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- set_crd
- setsepcolor
- end
-}def
-/additive_blend
-{
- 3 dict begin
- /numarrays xdf
- /numcolors xdf
- 0 1 numcolors 1 sub
- {
- /c1 xdf
- 1
- 0 1 numarrays 1 sub
- {
- 1 exch add/index cvx
- c1/get cvx/mul cvx
- }for
- numarrays 1 add 1/roll cvx
- }for
- numarrays[/pop cvx]cvx/repeat cvx
- end
-}def
-/subtractive_blend
-{
- 3 dict begin
- /numarrays xdf
- /numcolors xdf
- 0 1 numcolors 1 sub
- {
- /c1 xdf
- 1 1
- 0 1 numarrays 1 sub
- {
- 1 3 3 -1 roll add/index cvx
- c1/get cvx/sub cvx/mul cvx
- }for
- /sub cvx
- numarrays 1 add 1/roll cvx
- }for
- numarrays[/pop cvx]cvx/repeat cvx
- end
-}def
-/exec_tint_transform
-{
- /TintProc[
- /TintTransform cvx/setcolor cvx
- ]cvx bdf
- MappedCSA setcolorspace_opt
-}bdf
-/devn_makecustomcolor
-{
- 2 dict begin
- /names_index xdf
- /Names xdf
- 1 1 1 1 Names names_index get findcmykcustomcolor
- /devicen_tints AGMCORE_gget names_index get setcustomcolor
- Names length{pop}repeat
- end
-}bdf
-/setdevicencolorspace
-{
- dup/AliasedColorants known{false}{true}ifelse
- current_spot_alias and{
- 7 dict begin
- /names_index 0 def
- dup/names_len exch/Names get length def
- /new_names names_len array def
- /new_LookupTables names_len array def
- /alias_cnt 0 def
- dup/Names get
- {
- dup map_alias{
- exch pop
- dup/ColorLookup known{
- dup begin
- new_LookupTables names_index ColorLookup put
- end
- }{
- dup/Components known{
- dup begin
- new_LookupTables names_index Components put
- end
- }{
- dup begin
- new_LookupTables names_index[null null null null]put
- end
- }ifelse
- }ifelse
- new_names names_index 3 -1 roll/Name get put
- /alias_cnt alias_cnt 1 add def
- }{
- /name xdf
- new_names names_index name put
- dup/LookupTables known{
- dup begin
- new_LookupTables names_index LookupTables names_index get put
- end
- }{
- dup begin
- new_LookupTables names_index[null null null null]put
- end
- }ifelse
- }ifelse
- /names_index names_index 1 add def
- }forall
- alias_cnt 0 gt{
- /AliasedColorants true def
- /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
- 0 1 names_len 1 sub{
- /names_index xdf
- new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
- /AliasedColorants false def
- exit
- }{
- new_LookupTables names_index get 0 get null eq{
- dup/Names get names_index get/name xdf
- name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
- or or or not{
- /AliasedColorants false def
- exit
- }if
- }if
- }ifelse
- }for
- lut_entry_len 1 eq{
- /AliasedColorants false def
- }if
- AliasedColorants{
- dup begin
- /Names new_names def
- /LookupTables new_LookupTables def
- /AliasedColorants true def
- /NComponents lut_entry_len def
- /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
- /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
- currentdict/TTTablesIdx known not{
- /TTTablesIdx -1 def
- }if
- end
- }if
- }if
- end
- }if
- dup/devicen_colorspace_dict exch AGMCORE_gput
- begin
- currentdict/AliasedColorants known{
- AliasedColorants
- }{
- false
- }ifelse
- dup not{
- CSA map_csa
- }if
- /TintTransform load type/nulltype eq or{
- /TintTransform[
- 0 1 Names length 1 sub
- {
- /TTTablesIdx TTTablesIdx 1 add def
- dup LookupTables exch get dup 0 get null eq
- {
- 1 index
- Names exch get
- dup(Cyan)eq
- {
- pop exch
- LookupTables length exch sub
- /index cvx
- 0 0 0
- }
- {
- dup(Magenta)eq
- {
- pop exch
- LookupTables length exch sub
- /index cvx
- 0/exch cvx 0 0
- }{
- (Yellow)eq
- {
- exch
- LookupTables length exch sub
- /index cvx
- 0 0 3 -1/roll cvx 0
- }{
- exch
- LookupTables length exch sub
- /index cvx
- 0 0 0 4 -1/roll cvx
- }ifelse
- }ifelse
- }ifelse
- 5 -1/roll cvx/astore cvx
- }{
- dup length 1 sub
- LookupTables length 4 -1 roll sub 1 add
- /index cvx/mul cvx/round cvx/cvi cvx/get cvx
- }ifelse
- Names length TTTablesIdx add 1 add 1/roll cvx
- }for
- Names length[/pop cvx]cvx/repeat cvx
- NComponents Names length
- TintMethod/Subtractive eq
- {
- subtractive_blend
- }{
- additive_blend
- }ifelse
- ]cvx bdf
- }if
- AGMCORE_host_sep{
- Names convert_to_process{
- exec_tint_transform
- }
- {
- currentdict/AliasedColorants known{
- AliasedColorants not
- }{
- false
- }ifelse
- 5 dict begin
- /AvoidAliasedColorants xdf
- /painted? false def
- /names_index 0 def
- /names_len Names length def
- AvoidAliasedColorants{
- /currentspotalias current_spot_alias def
- false set_spot_alias
- }if
- Names{
- AGMCORE_is_cmyk_sep{
- dup(Cyan)eq AGMCORE_cyan_plate and exch
- dup(Magenta)eq AGMCORE_magenta_plate and exch
- dup(Yellow)eq AGMCORE_yellow_plate and exch
- (Black)eq AGMCORE_black_plate and or or or{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- Names names_index/devn_makecustomcolor cvx
- ]cvx ddf
- /painted? true def
- }if
- painted?{exit}if
- }{
- 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- Names names_index/devn_makecustomcolor cvx
- ]cvx ddf
- /painted? true def
- exit
- }if
- }ifelse
- /names_index names_index 1 add def
- }forall
- AvoidAliasedColorants{
- currentspotalias set_spot_alias
- }if
- painted?{
- /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
- }{
- /devicen_colorspace_dict AGMCORE_gget/TintProc[
- names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
- 0 0 0 0/setcmykcolor cvx
- ]cvx ddf
- }ifelse
- end
- }ifelse
- }
- {
- AGMCORE_in_rip_sep{
- Names convert_to_process not
- }{
- level3
- }ifelse
- {
- [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
- /TintProc level3 not AGMCORE_in_rip_sep and{
- [
- Names/length cvx[/pop cvx]cvx/repeat cvx
- ]cvx bdf
- }{
- {setcolor}bdf
- }ifelse
- }{
- exec_tint_transform
- }ifelse
- }ifelse
- set_crd
- /AliasedColorants false def
- end
-}def
-/setindexedcolorspace
-{
- dup/indexed_colorspace_dict exch AGMCORE_gput
- begin
- currentdict/CSDBase known{
- CSDBase/CSD get_res begin
- currentdict/Names known{
- currentdict devncs
- }{
- 1 currentdict sepcs
- }ifelse
- AGMCORE_host_sep{
- 4 dict begin
- /compCnt/Names where{pop Names length}{1}ifelse def
- /NewLookup HiVal 1 add string def
- 0 1 HiVal{
- /tableIndex xdf
- Lookup dup type/stringtype eq{
- compCnt tableIndex map_index
- }{
- exec
- }ifelse
- /Names where{
- pop setdevicencolor
- }{
- setsepcolor
- }ifelse
- currentgray
- tableIndex exch
- 255 mul cvi
- NewLookup 3 1 roll put
- }for
- [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
- end
- }{
- level3
- {
- currentdict/Names known{
- [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
- }{
- [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
- }ifelse
- }{
- [/Indexed MappedCSA HiVal
- [
- currentdict/Names known{
- Lookup dup type/stringtype eq
- {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
- {/exec cvx}ifelse
- /TintTransform load/exec cvx
- }{
- Lookup dup type/stringtype eq
- {/exch cvx/get cvx 255/div cvx}
- {/exec cvx}ifelse
- CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
- }ifelse
- ]cvx
- ]setcolorspace_opt
- }ifelse
- }ifelse
- end
- set_crd
- }
- {
- CSA map_csa
- AGMCORE_host_sep level2 not and{
- 0 0 0 0 setcmykcolor
- }{
- [/Indexed MappedCSA
- level2 not has_color not and{
- dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
- pop[/DeviceGray]
- }if
- HiVal GrayLookup
- }{
- HiVal
- currentdict/RangeArray known{
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- Lookup exch
- dup HiVal gt{
- pop HiVal
- }if
- NComponents mul NComponents getinterval{}forall
- NComponents 1 sub -1 0{
- RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
- NComponents 1 roll
- }for
- end
- }bind
- }{
- Lookup
- }ifelse
- }ifelse
- ]setcolorspace_opt
- set_crd
- }ifelse
- }ifelse
- end
-}def
-/setindexedcolor
-{
- AGMCORE_host_sep{
- /indexed_colorspace_dict AGMCORE_gget
- begin
- currentdict/CSDBase known{
- CSDBase/CSD get_res begin
- currentdict/Names known{
- map_indexed_devn
- devn
- }
- {
- Lookup 1 3 -1 roll map_index
- sep
- }ifelse
- end
- }{
- Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
- map_index
- MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
- }ifelse
- end
- }{
- level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
- /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
- map_indexed_devn
- devn
- end
- }
- {
- setcolor
- }ifelse
- }ifelse
-}def
-/ignoreimagedata
-{
- currentoverprint not{
- gsave
- dup clonedict begin
- 1 setgray
- /Decode[0 1]def
- /DataSource<FF>def
- /MultipleDataSources false def
- /BitsPerComponent 8 def
- currentdict end
- systemdict/image gx
- grestore
- }if
- consumeimagedata
-}def
-/add_res
-{
- dup/CSD eq{
- pop
- //Adobe_AGM_Core begin
- /AGMCORE_CSD_cache load 3 1 roll put
- end
- }{
- defineresource pop
- }ifelse
-}def
-/del_res
-{
- {
- aload pop exch
- dup/CSD eq{
- pop
- {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
- }{
- exch
- {1 index undefineresource}forall
- pop
- }ifelse
- }forall
-}def
-/get_res
-{
- dup/CSD eq{
- pop
- dup type dup/nametype eq exch/stringtype eq or{
- AGMCORE_CSD_cache exch get
- }if
- }{
- findresource
- }ifelse
-}def
-/get_csa_by_name
-{
- dup type dup/nametype eq exch/stringtype eq or{
- /CSA get_res
- }if
-}def
-/paintproc_buf_init
-{
- /count get 0 0 put
-}def
-/paintproc_buf_next
-{
- dup/count get dup 0 get
- dup 3 1 roll
- 1 add 0 xpt
- get
-}def
-/cachepaintproc_compress
-{
- 5 dict begin
- currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
- /ppdict 20 dict def
- /string_size 16000 def
- /readbuffer string_size string def
- currentglobal true setglobal
- ppdict 1 array dup 0 1 put/count xpt
- setglobal
- /LZWFilter
- {
- exch
- dup length 0 eq{
- pop
- }{
- ppdict dup length 1 sub 3 -1 roll put
- }ifelse
- {string_size}{0}ifelse string
- }/LZWEncode filter def
- {
- ReadFilter readbuffer readstring
- exch LZWFilter exch writestring
- not{exit}if
- }loop
- LZWFilter closefile
- ppdict
- end
-}def
-/cachepaintproc
-{
- 2 dict begin
- currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
- /ppdict 20 dict def
- currentglobal true setglobal
- ppdict 1 array dup 0 1 put/count xpt
- setglobal
- {
- ReadFilter 16000 string readstring exch
- ppdict dup length 1 sub 3 -1 roll put
- not{exit}if
- }loop
- ppdict dup dup length 1 sub()put
- end
-}def
-/make_pattern
-{
- exch clonedict exch
- dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
- exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
- exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
- matrix translate exch matrix concatmatrix
- 1 index begin
- BBox 0 get XStep div cvi XStep mul/xshift exch neg def
- BBox 1 get YStep div cvi YStep mul/yshift exch neg def
- BBox 0 get xshift add
- BBox 1 get yshift add
- BBox 2 get xshift add
- BBox 3 get yshift add
- 4 array astore
- /BBox exch def
- [xshift yshift/translate load null/exec load]dup
- 3/PaintProc load put cvx/PaintProc exch def
- end
- gsave 0 setgray
- makepattern
- grestore
-}def
-/set_pattern
-{
- dup/PatternType get 1 eq{
- dup/PaintType get 1 eq{
- currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
- }if
- }if
- setpattern
-}def
-/setcolorspace_opt
-{
- dup currentcolorspace eq{pop}{setcolorspace}ifelse
-}def
-/updatecolorrendering
-{
- currentcolorrendering/RenderingIntent known{
- currentcolorrendering/RenderingIntent get
- }
- {
- Intent/AbsoluteColorimetric eq
- {
- /absolute_colorimetric_crd AGMCORE_gget dup null eq
- }
- {
- Intent/RelativeColorimetric eq
- {
- /relative_colorimetric_crd AGMCORE_gget dup null eq
- }
- {
- Intent/Saturation eq
- {
- /saturation_crd AGMCORE_gget dup null eq
- }
- {
- /perceptual_crd AGMCORE_gget dup null eq
- }ifelse
- }ifelse
- }ifelse
- {
- pop null
- }
- {
- /RenderingIntent known{null}{Intent}ifelse
- }ifelse
- }ifelse
- Intent ne{
- Intent/ColorRendering{findresource}stopped
- {
- pop pop systemdict/findcolorrendering known
- {
- Intent findcolorrendering
- {
- /ColorRendering findresource true exch
- }
- {
- /ColorRendering findresource
- product(Xerox Phaser 5400)ne
- exch
- }ifelse
- dup Intent/AbsoluteColorimetric eq
- {
- /absolute_colorimetric_crd exch AGMCORE_gput
- }
- {
- Intent/RelativeColorimetric eq
- {
- /relative_colorimetric_crd exch AGMCORE_gput
- }
- {
- Intent/Saturation eq
- {
- /saturation_crd exch AGMCORE_gput
- }
- {
- Intent/Perceptual eq
- {
- /perceptual_crd exch AGMCORE_gput
- }
- {
- pop
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- 1 index{exch}{pop}ifelse
- }
- {false}ifelse
- }
- {true}ifelse
- {
- dup begin
- currentdict/TransformPQR known{
- currentdict/TransformPQR get aload pop
- 3{{}eq 3 1 roll}repeat or or
- }
- {true}ifelse
- currentdict/MatrixPQR known{
- currentdict/MatrixPQR get aload pop
- 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
- 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
- 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
- and and and and and and and and
- }
- {true}ifelse
- end
- or
- {
- clonedict begin
- /TransformPQR[
- {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
- 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
- {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
- 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
- {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
- 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
- ]def
- /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
- /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
- currentdict end
- }if
- setcolorrendering_opt
- }if
- }if
-}def
-/set_crd
-{
- AGMCORE_host_sep not level2 and{
- currentdict/ColorRendering known{
- ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
- }{
- currentdict/Intent known{
- updatecolorrendering
- }if
- }ifelse
- currentcolorspace dup type/arraytype eq
- {0 get}if
- /DeviceRGB eq
- {
- currentdict/UCR known
- {/UCR}{/AGMCORE_currentucr}ifelse
- load setundercolorremoval
- currentdict/BG known
- {/BG}{/AGMCORE_currentbg}ifelse
- load setblackgeneration
- }if
- }if
-}def
-/set_ucrbg
-{
- dup null eq{pop/AGMCORE_currentbg load}{/Procedure get_res}ifelse setblackgeneration
- dup null eq{pop/AGMCORE_currentucr load}{/Procedure get_res}ifelse setundercolorremoval
-}def
-/setcolorrendering_opt
-{
- dup currentcolorrendering eq{
- pop
- }{
- product(HP Color LaserJet 2605)anchorsearch{
- pop pop pop
- }{
- pop
- clonedict
- begin
- /Intent Intent def
- currentdict
- end
- setcolorrendering
- }ifelse
- }ifelse
-}def
-/cpaint_gcomp
-{
- convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
- //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
- {
- (%end_cpaint_gcomp)flushinput
- }if
-}def
-/cpaint_gsep
-{
- //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
- {
- (%end_cpaint_gsep)flushinput
- }if
-}def
-/cpaint_gend
-{np}def
-/T1_path
-{
- currentfile token pop currentfile token pop mo
- {
- currentfile token pop dup type/stringtype eq
- {pop exit}if
- 0 exch rlineto
- currentfile token pop dup type/stringtype eq
- {pop exit}if
- 0 rlineto
- }loop
-}def
-/T1_gsave
- level3
- {/clipsave}
- {/gsave}ifelse
- load def
-/T1_grestore
- level3
- {/cliprestore}
- {/grestore}ifelse
- load def
-/set_spot_alias_ary
-{
- dup inherit_aliases
- //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
-}def
-/set_spot_normalization_ary
-{
- dup inherit_aliases
- dup length
- /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
- array
- //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
- /AGMCORE_SpotAliasAry where{
- pop
- AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
- AGMCORE_SpotAliasAry length
- }{0}ifelse
- AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
- true set_spot_alias
-}def
-/inherit_aliases
-{
- {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
-}def
-/set_spot_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- /AGMCORE_current_spot_alias 3 -1 roll put
- }{
- pop
- }ifelse
-}def
-/current_spot_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- /AGMCORE_current_spot_alias get
- }{
- false
- }ifelse
-}def
-/map_alias
-{
- /AGMCORE_SpotAliasAry2 where{
- begin
- /AGMCORE_name xdf
- false
- AGMCORE_SpotAliasAry2{
- dup/Name get AGMCORE_name eq{
- /CSD get/CSD get_res
- exch pop true
- exit
- }{
- pop
- }ifelse
- }forall
- end
- }{
- pop false
- }ifelse
-}bdf
-/spot_alias
-{
- true set_spot_alias
- /AGMCORE_&setcustomcolor AGMCORE_key_known not{
- //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
- }if
- /customcolor_tint 1 AGMCORE_gput
- //Adobe_AGM_Core begin
- /setcustomcolor
- {
- //Adobe_AGM_Core begin
- dup/customcolor_tint exch AGMCORE_gput
- 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
- current_spot_alias and{1 index 4 get map_alias}{false}ifelse
- {
- false set_spot_alias
- /sep_colorspace_dict AGMCORE_gget null ne
- 3 1 roll 2 index{
- exch pop/sep_tint AGMCORE_gget exch
- }if
- mark 3 1 roll
- setsepcolorspace
- counttomark 0 ne{
- setsepcolor
- }if
- pop
- not{/sep_tint 1.0 AGMCORE_gput}if
- pop
- true set_spot_alias
- }{
- AGMCORE_&setcustomcolor
- }ifelse
- end
- }bdf
- end
-}def
-/begin_feature
-{
- Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
- count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
- {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
-}def
-/end_feature
-{
- 2 dict begin
- /spd/setpagedevice load def
- /setpagedevice{get_gstate spd set_gstate}def
- stopped{$error/newerror false put}if
- end
- count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
- countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
- {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
-}def
-/set_negative
-{
- //Adobe_AGM_Core begin
- /AGMCORE_inverting exch def
- level2{
- currentpagedevice/NegativePrint known AGMCORE_distilling not and{
- currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
- true begin_feature true{
- <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
- }end_feature
- }if
- /AGMCORE_inverting false def
- }if
- }if
- AGMCORE_inverting{
- [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
- AGMCORE_distilling{
- erasepage
- }{
- gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
- /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
- }ifelse
- }if
- end
-}def
-/lw_save_restore_override{
- /md where{
- pop
- md begin
- initializepage
- /initializepage{}def
- /pmSVsetup{}def
- /endp{}def
- /pse{}def
- /psb{}def
- /orig_showpage where
- {pop}
- {/orig_showpage/showpage load def}
- ifelse
- /showpage{orig_showpage gR}def
- end
- }if
-}def
-/pscript_showpage_override{
- /NTPSOct95 where
- {
- begin
- showpage
- save
- /showpage/restore load def
- /restore{exch pop}def
- end
- }if
-}def
-/driver_media_override
-{
- /md where{
- pop
- md/initializepage known{
- md/initializepage{}put
- }if
- md/rC known{
- md/rC{4{pop}repeat}put
- }if
- }if
- /mysetup where{
- /mysetup[1 0 0 1 0 0]put
- }if
- Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
- level2
- {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
-}def
-/capture_mysetup
-{
- /Pscript_Win_Data where{
- pop
- Pscript_Win_Data/mysetup known{
- Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
- }if
- }if
-}def
-/restore_mysetup
-{
- /Pscript_Win_Data where{
- pop
- Pscript_Win_Data/mysetup known{
- Adobe_AGM_Core/save_mysetup known{
- Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
- Adobe_AGM_Core/save_mysetup undef
- }if
- }if
- }if
-}def
-/driver_check_media_override
-{
- /PrepsDict where
- {pop}
- {
- Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
- Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
- {
- Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
- Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
- }if
- {
- Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
- }if
- }ifelse
-}def
-AGMCORE_err_strings begin
- /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
- /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
- /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
-end
-/set_def_ht
-{AGMCORE_def_ht sethalftone}def
-/set_def_flat
-{AGMCORE_Default_flatness setflat}def
-end
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-%%BeginResource: procset Adobe_CoolType_Core 2.31 0
-%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
-%%Version: 2.31 0
-10 dict begin
-/Adobe_CoolType_Passthru currentdict def
-/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
-Adobe_CoolType_Core_Defined
- {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
-if
-userdict/Adobe_CoolType_Core 70 dict dup begin put
-/Adobe_CoolType_Version 2.31 def
-/Level2?
- systemdict/languagelevel known dup
- {pop systemdict/languagelevel get 2 ge}
- if def
-Level2? not
- {
- /currentglobal false def
- /setglobal/pop load def
- /gcheck{pop false}bind def
- /currentpacking false def
- /setpacking/pop load def
- /SharedFontDirectory 0 dict def
- }
-if
-currentpacking
-true setpacking
-currentglobal false setglobal
-userdict/Adobe_CoolType_Data 2 copy known not
- {2 copy 10 dict put}
-if
-get
- begin
- /@opStackCountByLevel 32 dict def
- /@opStackLevel 0 def
- /@dictStackCountByLevel 32 dict def
- /@dictStackLevel 0 def
- end
-setglobal
-currentglobal true setglobal
-userdict/Adobe_CoolType_GVMFonts known not
- {userdict/Adobe_CoolType_GVMFonts 10 dict put}
-if
-setglobal
-currentglobal false setglobal
-userdict/Adobe_CoolType_LVMFonts known not
- {userdict/Adobe_CoolType_LVMFonts 10 dict put}
-if
-setglobal
-/ct_VMDictPut
- {
- dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
- 3 1 roll put
- }bind def
-/ct_VMDictUndef
- {
- dup Adobe_CoolType_GVMFonts exch known
- {Adobe_CoolType_GVMFonts exch undef}
- {
- dup Adobe_CoolType_LVMFonts exch known
- {Adobe_CoolType_LVMFonts exch undef}
- {pop}
- ifelse
- }ifelse
- }bind def
-/ct_str1 1 string def
-/ct_xshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- _ct_x _ct_y moveto
- 0
- rmoveto
- }
- ifelse
- /_ct_i _ct_i 1 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/ct_yshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- _ct_x _ct_y moveto
- 0 exch
- rmoveto
- }
- ifelse
- /_ct_i _ct_i 1 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/ct_xyshow
-{
- /_ct_na exch def
- /_ct_i 0 def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- {
- pop pop
- ct_str1 exch 0 exch put
- ct_str1 show
- {_ct_na _ct_i get}stopped
- {pop pop}
- {
- {_ct_na _ct_i 1 add get}stopped
- {pop pop pop}
- {
- _ct_x _ct_y moveto
- rmoveto
- }
- ifelse
- }
- ifelse
- /_ct_i _ct_i 2 add def
- currentpoint
- /_ct_y exch def
- /_ct_x exch def
- }
- exch
- @cshow
-}bind def
-/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
-/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
-/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
-currentglobal true setglobal
-/ct_T3Defs
-{
-/BuildChar
-{
- 1 index/Encoding get exch get
- 1 index/BuildGlyph get exec
-}bind def
-/BuildGlyph
-{
- exch begin
- GlyphProcs exch get exec
- end
-}bind def
-}bind def
-setglobal
-/@_SaveStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@vmState currentglobal def false setglobal
- @opStackCountByLevel
- @opStackLevel
- 2 copy known not
- {
- 2 copy
- 3 dict dup/args
- 7 index
- 5 add array put
- put get
- }
- {
- get dup/args get dup length 3 index lt
- {
- dup length 5 add array exch
- 1 index exch 0 exch putinterval
- 1 index exch/args exch put
- }
- {pop}
- ifelse
- }
- ifelse
- begin
- count 1 sub
- 1 index lt
- {pop count}
- if
- dup/argCount exch def
- dup 0 gt
- {
- args exch 0 exch getinterval
- astore pop
- }
- {pop}
- ifelse
- count
- /restCount exch def
- end
- /@opStackLevel @opStackLevel 1 add def
- countdictstack 1 sub
- @dictStackCountByLevel exch @dictStackLevel exch put
- /@dictStackLevel @dictStackLevel 1 add def
- @vmState setglobal
- end
- }bind def
-/@_RestoreStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@opStackLevel @opStackLevel 1 sub def
- @opStackCountByLevel @opStackLevel get
- begin
- count restCount sub dup 0 gt
- {{pop}repeat}
- {pop}
- ifelse
- args 0 argCount getinterval{}forall
- end
- /@dictStackLevel @dictStackLevel 1 sub def
- @dictStackCountByLevel @dictStackLevel get
- end
- countdictstack exch sub dup 0 gt
- {{end}repeat}
- {pop}
- ifelse
- }bind def
-/@_PopStackLevels
- {
- Adobe_CoolType_Data
- begin
- /@opStackLevel @opStackLevel 1 sub def
- /@dictStackLevel @dictStackLevel 1 sub def
- end
- }bind def
-/@Raise
- {
- exch cvx exch errordict exch get exec
- stop
- }bind def
-/@ReRaise
- {
- cvx $error/errorname get errordict exch get exec
- stop
- }bind def
-/@Stopped
- {
- 0 @#Stopped
- }bind def
-/@#Stopped
- {
- @_SaveStackLevels
- stopped
- {@_RestoreStackLevels true}
- {@_PopStackLevels false}
- ifelse
- }bind def
-/@Arg
- {
- Adobe_CoolType_Data
- begin
- @opStackCountByLevel @opStackLevel 1 sub get
- begin
- args exch
- argCount 1 sub exch sub get
- end
- end
- }bind def
-currentglobal true setglobal
-/CTHasResourceForAllBug
- Level2?
- {
- 1 dict dup
- /@shouldNotDisappearDictValue true def
- Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
- begin
- count @_SaveStackLevels
- {(*){pop stop}128 string/Category resourceforall}
- stopped pop
- @_RestoreStackLevels
- currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
- {
- /@shouldNotDisappearDictValue known
- {
- {
- end
- currentdict 1 index eq
- {pop exit}
- if
- }
- loop
- }
- if
- }
- {
- pop
- end
- }
- ifelse
- }
- {false}
- ifelse
- def
-true setglobal
-/CTHasResourceStatusBug
- Level2?
- {
- mark
- {/steveamerige/Category resourcestatus}
- stopped
- {cleartomark true}
- {cleartomark currentglobal not}
- ifelse
- }
- {false}
- ifelse
- def
-setglobal
-/CTResourceStatus
- {
- mark 3 1 roll
- /Category findresource
- begin
- ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
- {cleartomark false}
- {{3 2 roll pop true}{cleartomark false}ifelse}
- ifelse
- end
- }bind def
-/CTWorkAroundBugs
- {
- Level2?
- {
- /cid_PreLoad/ProcSet resourcestatus
- {
- pop pop
- currentglobal
- mark
- {
- (*)
- {
- dup/CMap CTHasResourceStatusBug
- {CTResourceStatus}
- {resourcestatus}
- ifelse
- {
- pop dup 0 eq exch 1 eq or
- {
- dup/CMap findresource gcheck setglobal
- /CMap undefineresource
- }
- {
- pop CTHasResourceForAllBug
- {exit}
- {stop}
- ifelse
- }
- ifelse
- }
- {pop}
- ifelse
- }
- 128 string/CMap resourceforall
- }
- stopped
- {cleartomark}
- stopped pop
- setglobal
- }
- if
- }
- if
- }bind def
-/ds
- {
- Adobe_CoolType_Core
- begin
- CTWorkAroundBugs
- /mo/moveto load def
- /nf/newencodedfont load def
- /msf{makefont setfont}bind def
- /uf{dup undefinefont ct_VMDictUndef}bind def
- /ur/undefineresource load def
- /chp/charpath load def
- /awsh/awidthshow load def
- /wsh/widthshow load def
- /ash/ashow load def
- /@xshow/xshow load def
- /@yshow/yshow load def
- /@xyshow/xyshow load def
- /@cshow/cshow load def
- /sh/show load def
- /rp/repeat load def
- /.n/.notdef def
- end
- currentglobal false setglobal
- userdict/Adobe_CoolType_Data 2 copy known not
- {2 copy 10 dict put}
- if
- get
- begin
- /AddWidths? false def
- /CC 0 def
- /charcode 2 string def
- /@opStackCountByLevel 32 dict def
- /@opStackLevel 0 def
- /@dictStackCountByLevel 32 dict def
- /@dictStackLevel 0 def
- /InVMFontsByCMap 10 dict def
- /InVMDeepCopiedFonts 10 dict def
- end
- setglobal
- }bind def
-/dt
- {
- currentdict Adobe_CoolType_Core eq
- {end}
- if
- }bind def
-/ps
- {
- Adobe_CoolType_Core begin
- Adobe_CoolType_GVMFonts begin
- Adobe_CoolType_LVMFonts begin
- SharedFontDirectory begin
- }bind def
-/pt
- {
- end
- end
- end
- end
- }bind def
-/unload
- {
- systemdict/languagelevel known
- {
- systemdict/languagelevel get 2 ge
- {
- userdict/Adobe_CoolType_Core 2 copy known
- {undef}
- {pop pop}
- ifelse
- }
- if
- }
- if
- }bind def
-/ndf
- {
- 1 index where
- {pop pop pop}
- {dup xcheck{bind}if def}
- ifelse
- }def
-/findfont systemdict
- begin
- userdict
- begin
- /globaldict where{/globaldict get begin}if
- dup where pop exch get
- /globaldict where{pop end}if
- end
- end
-Adobe_CoolType_Core_Defined
- {/systemfindfont exch def}
- {
- /findfont 1 index def
- /systemfindfont exch def
- }
-ifelse
-/undefinefont
- {pop}ndf
-/copyfont
- {
- currentglobal 3 1 roll
- 1 index gcheck setglobal
- dup null eq{0}{dup length}ifelse
- 2 index length add 1 add dict
- begin
- exch
- {
- 1 index/FID eq
- {pop pop}
- {def}
- ifelse
- }
- forall
- dup null eq
- {pop}
- {{def}forall}
- ifelse
- currentdict
- end
- exch setglobal
- }bind def
-/copyarray
- {
- currentglobal exch
- dup gcheck setglobal
- dup length array copy
- exch setglobal
- }bind def
-/newencodedfont
- {
- currentglobal
- {
- SharedFontDirectory 3 index known
- {SharedFontDirectory 3 index get/FontReferenced known}
- {false}
- ifelse
- }
- {
- FontDirectory 3 index known
- {FontDirectory 3 index get/FontReferenced known}
- {
- SharedFontDirectory 3 index known
- {SharedFontDirectory 3 index get/FontReferenced known}
- {false}
- ifelse
- }
- ifelse
- }
- ifelse
- dup
- {
- 3 index findfont/FontReferenced get
- 2 index dup type/nametype eq
- {findfont}
- if ne
- {pop false}
- if
- }
- if
- dup
- {
- 1 index dup type/nametype eq
- {findfont}
- if
- dup/CharStrings known
- {
- /CharStrings get length
- 4 index findfont/CharStrings get length
- ne
- {
- pop false
- }
- if
- }
- {pop}
- ifelse
- }
- if
- {
- pop
- 1 index findfont
- /Encoding get exch
- 0 1 255
- {2 copy get 3 index 3 1 roll put}
- for
- pop pop pop
- }
- {
- currentglobal
- 4 1 roll
- dup type/nametype eq
- {findfont}
- if
- dup gcheck setglobal
- dup dup maxlength 2 add dict
- begin
- exch
- {
- 1 index/FID ne
- 2 index/Encoding ne and
- {def}
- {pop pop}
- ifelse
- }
- forall
- /FontReferenced exch def
- /Encoding exch dup length array copy def
- /FontName 1 index dup type/stringtype eq{cvn}if def dup
- currentdict
- end
- definefont ct_VMDictPut
- setglobal
- }
- ifelse
- }bind def
-/SetSubstituteStrategy
- {
- $SubstituteFont
- begin
- dup type/dicttype ne
- {0 dict}
- if
- currentdict/$Strategies known
- {
- exch $Strategies exch
- 2 copy known
- {
- get
- 2 copy maxlength exch maxlength add dict
- begin
- {def}forall
- {def}forall
- currentdict
- dup/$Init known
- {dup/$Init get exec}
- if
- end
- /$Strategy exch def
- }
- {pop pop pop}
- ifelse
- }
- {pop pop}
- ifelse
- end
- }bind def
-/scff
- {
- $SubstituteFont
- begin
- dup type/stringtype eq
- {dup length exch}
- {null}
- ifelse
- /$sname exch def
- /$slen exch def
- /$inVMIndex
- $sname null eq
- {
- 1 index $str cvs
- dup length $slen sub $slen getinterval cvn
- }
- {$sname}
- ifelse def
- end
- {findfont}
- @Stopped
- {
- dup length 8 add string exch
- 1 index 0(BadFont:)putinterval
- 1 index exch 8 exch dup length string cvs putinterval cvn
- {findfont}
- @Stopped
- {pop/Courier findfont}
- if
- }
- if
- $SubstituteFont
- begin
- /$sname null def
- /$slen 0 def
- /$inVMIndex null def
- end
- }bind def
-/isWidthsOnlyFont
- {
- dup/WidthsOnly known
- {pop pop true}
- {
- dup/FDepVector known
- {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
- {
- dup/FDArray known
- {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
- {pop}
- ifelse
- }
- ifelse
- }
- ifelse
- }bind def
-/ct_StyleDicts 4 dict dup begin
- /Adobe-Japan1 4 dict dup begin
- Level2?
- {
- /Serif
- /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiMin-W3}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiMin-W3/CIDFont resourcestatus
- {pop pop/HeiseiMin-W3}
- {/Ryumin-Light}
- ifelse
- }
- {/Ryumin-Light}
- ifelse
- }
- ifelse
- def
- /SansSerif
- /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiKakuGo-W5}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiKakuGo-W5/CIDFont resourcestatus
- {pop pop/HeiseiKakuGo-W5}
- {/GothicBBB-Medium}
- ifelse
- }
- {/GothicBBB-Medium}
- ifelse
- }
- ifelse
- def
- /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
- {pop pop/HeiseiMaruGo-W4}
- {
- /CIDFont/Category resourcestatus
- {
- pop pop
- /HeiseiMaruGo-W4/CIDFont resourcestatus
- {pop pop/HeiseiMaruGo-W4}
- {
- /Jun101-Light-RKSJ-H/Font resourcestatus
- {pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- }
- ifelse
- }
- {
- /Jun101-Light-RKSJ-H/Font resourcestatus
- {pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- }
- ifelse
- }
- ifelse
- /RoundSansSerif exch def
- /Default Serif def
- }
- {
- /Serif/Ryumin-Light def
- /SansSerif/GothicBBB-Medium def
- {
- (fonts/Jun101-Light-83pv-RKSJ-H)status
- }stopped
- {pop}{
- {pop pop pop pop/Jun101-Light}
- {SansSerif}
- ifelse
- /RoundSansSerif exch def
- }ifelse
- /Default Serif def
- }
- ifelse
- end
- def
- /Adobe-Korea1 4 dict dup begin
- /Serif/HYSMyeongJo-Medium def
- /SansSerif/HYGoThic-Medium def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
- /Adobe-GB1 4 dict dup begin
- /Serif/STSong-Light def
- /SansSerif/STHeiti-Regular def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
- /Adobe-CNS1 4 dict dup begin
- /Serif/MKai-Medium def
- /SansSerif/MHei-Medium def
- /RoundSansSerif SansSerif def
- /Default Serif def
- end
- def
-end
-def
-Level2?{currentglobal true setglobal}if
-/ct_BoldRomanWidthProc
- {
- stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
- 0 0
- }bind def
-/ct_Type0WidthProc
- {
- dup stringwidth 0 0 moveto
- 2 index true charpath pathbbox
- 0 -1
- 7 index 2 div .88
- setcachedevice2
- pop
- 0 0
- }bind def
-/ct_Type0WMode1WidthProc
- {
- dup stringwidth
- pop 2 div neg -0.88
- 2 copy
- moveto
- 0 -1
- 5 -1 roll true charpath pathbbox
- setcachedevice
- }bind def
-/cHexEncoding
-[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
-/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
-/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
-/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
-/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
-/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
-/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
-/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
-/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
-/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
-/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
-/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
-/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
-/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
-/ct_BoldBaseFont
- 11 dict begin
- /FontType 3 def
- /FontMatrix[1 0 0 1 0 0]def
- /FontBBox[0 0 1 1]def
- /Encoding cHexEncoding def
- /_setwidthProc/ct_BoldRomanWidthProc load def
- /_bcstr1 1 string def
- /BuildChar
- {
- exch begin
- _basefont setfont
- _bcstr1 dup 0 4 -1 roll put
- dup
- _setwidthProc
- 3 copy
- moveto
- show
- _basefonto setfont
- moveto
- show
- end
- }bind def
- currentdict
- end
-def
-systemdict/composefont known
-{
-/ct_DefineIdentity-H
-{
- /Identity-H/CMap resourcestatus
- {
- pop pop
- }
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CIDSystemInfo 3 dict dup begin
- /Registry(Adobe)def
- /Ordering(Identity)def
- /Supplement 0 def
- end def
- /CMapName/Identity-H def
- /CMapVersion 1.000 def
- /CMapType 1 def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
-}
-def
-/ct_BoldBaseCIDFont
- 11 dict begin
- /CIDFontType 1 def
- /CIDFontName/ct_BoldBaseCIDFont def
- /FontMatrix[1 0 0 1 0 0]def
- /FontBBox[0 0 1 1]def
- /_setwidthProc/ct_Type0WidthProc load def
- /_bcstr2 2 string def
- /BuildGlyph
- {
- exch begin
- _basefont setfont
- _bcstr2 1 2 index 256 mod put
- _bcstr2 0 3 -1 roll 256 idiv put
- _bcstr2 dup _setwidthProc
- 3 copy
- moveto
- show
- _basefonto setfont
- moveto
- show
- end
- }bind def
- currentdict
- end
-def
-}if
-Level2?{setglobal}if
-/ct_CopyFont{
- {
- 1 index/FID ne 2 index/UniqueID ne and
- {def}{pop pop}ifelse
- }forall
-}bind def
-/ct_Type0CopyFont
-{
- exch
- dup length dict
- begin
- ct_CopyFont
- [
- exch
- FDepVector
- {
- dup/FontType get 0 eq
- {
- 1 index ct_Type0CopyFont
- /_ctType0 exch definefont
- }
- {
- /_ctBaseFont exch
- 2 index exec
- }
- ifelse
- exch
- }
- forall
- pop
- ]
- /FDepVector exch def
- currentdict
- end
-}bind def
-/ct_MakeBoldFont
-{
- dup/ct_SyntheticBold known
- {
- dup length 3 add dict begin
- ct_CopyFont
- /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
- /ct_SyntheticBold true def
- currentdict
- end
- definefont
- }
- {
- dup dup length 3 add dict
- begin
- ct_CopyFont
- /PaintType 2 def
- /StrokeWidth .03 0 FontMatrix idtransform pop def
- /dummybold currentdict
- end
- definefont
- dup/FontType get dup 9 ge exch 11 le and
- {
- ct_BoldBaseCIDFont
- dup length 3 add dict copy begin
- dup/CIDSystemInfo get/CIDSystemInfo exch def
- ct_DefineIdentity-H
- /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
- /_basefont exch def
- /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
- /_basefonto exch def
- currentdict
- end
- /CIDFont defineresource
- }
- {
- ct_BoldBaseFont
- dup length 3 add dict copy begin
- /_basefont exch def
- /_basefonto exch def
- currentdict
- end
- definefont
- }
- ifelse
- }
- ifelse
-}bind def
-/ct_MakeBold{
- 1 index
- 1 index
- findfont
- currentglobal 5 1 roll
- dup gcheck setglobal
- dup
- /FontType get 0 eq
- {
- dup/WMode known{dup/WMode get 1 eq}{false}ifelse
- version length 4 ge
- and
- {version 0 4 getinterval cvi 2015 ge}
- {true}
- ifelse
- {/ct_Type0WidthProc}
- {/ct_Type0WMode1WidthProc}
- ifelse
- ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
- {ct_MakeBoldFont}ct_Type0CopyFont definefont
- }
- {
- dup/_fauxfont known not 1 index/SubstMaster known not and
- {
- ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
- ct_MakeBoldFont
- }
- {
- 2 index 2 index eq
- {exch pop }
- {
- dup length dict begin
- ct_CopyFont
- currentdict
- end
- definefont
- }
- ifelse
- }
- ifelse
- }
- ifelse
- pop pop pop
- setglobal
-}bind def
-/?str1 256 string def
-/?set
- {
- $SubstituteFont
- begin
- /$substituteFound false def
- /$fontname 1 index def
- /$doSmartSub false def
- end
- dup
- findfont
- $SubstituteFont
- begin
- $substituteFound
- {false}
- {
- dup/FontName known
- {
- dup/FontName get $fontname eq
- 1 index/DistillerFauxFont known not and
- /currentdistillerparams where
- {pop false 2 index isWidthsOnlyFont not and}
- if
- }
- {false}
- ifelse
- }
- ifelse
- exch pop
- /$doSmartSub true def
- end
- {
- 5 1 roll pop pop pop pop
- findfont
- }
- {
- 1 index
- findfont
- dup/FontType get 3 eq
- {
- 6 1 roll pop pop pop pop pop false
- }
- {pop true}
- ifelse
- {
- $SubstituteFont
- begin
- pop pop
- /$styleArray 1 index def
- /$regOrdering 2 index def
- pop pop
- 0 1 $styleArray length 1 sub
- {
- $styleArray exch get
- ct_StyleDicts $regOrdering
- 2 copy known
- {
- get
- exch 2 copy known not
- {pop/Default}
- if
- get
- dup type/nametype eq
- {
- ?str1 cvs length dup 1 add exch
- ?str1 exch(-)putinterval
- exch dup length exch ?str1 exch 3 index exch putinterval
- add ?str1 exch 0 exch getinterval cvn
- }
- {
- pop pop/Unknown
- }
- ifelse
- }
- {
- pop pop pop pop/Unknown
- }
- ifelse
- }
- for
- end
- findfont
- }if
- }
- ifelse
- currentglobal false setglobal 3 1 roll
- null copyfont definefont pop
- setglobal
- }bind def
-setpacking
-userdict/$SubstituteFont 25 dict put
-1 dict
- begin
- /SubstituteFont
- dup $error exch 2 copy known
- {get}
- {pop pop{pop/Courier}bind}
- ifelse def
- /currentdistillerparams where dup
- {
- pop pop
- currentdistillerparams/CannotEmbedFontPolicy 2 copy known
- {get/Error eq}
- {pop pop false}
- ifelse
- }
- if not
- {
- countdictstack array dictstack 0 get
- begin
- userdict
- begin
- $SubstituteFont
- begin
- /$str 128 string def
- /$fontpat 128 string def
- /$slen 0 def
- /$sname null def
- /$match false def
- /$fontname null def
- /$substituteFound false def
- /$inVMIndex null def
- /$doSmartSub true def
- /$depth 0 def
- /$fontname null def
- /$italicangle 26.5 def
- /$dstack null def
- /$Strategies 10 dict dup
- begin
- /$Type3Underprint
- {
- currentglobal exch false setglobal
- 11 dict
- begin
- /UseFont exch
- $WMode 0 ne
- {
- dup length dict copy
- dup/WMode $WMode put
- /UseFont exch definefont
- }
- if def
- /FontName $fontname dup type/stringtype eq{cvn}if def
- /FontType 3 def
- /FontMatrix[.001 0 0 .001 0 0]def
- /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
- /FontBBox[0 0 0 0]def
- /CCInfo 7 dict dup
- begin
- /cc null def
- /x 0 def
- /y 0 def
- end def
- /BuildChar
- {
- exch
- begin
- CCInfo
- begin
- 1 string dup 0 3 index put exch pop
- /cc exch def
- UseFont 1000 scalefont setfont
- cc stringwidth/y exch def/x exch def
- x y setcharwidth
- $SubstituteFont/$Strategy get/$Underprint get exec
- 0 0 moveto cc show
- x y moveto
- end
- end
- }bind def
- currentdict
- end
- exch setglobal
- }bind def
- /$GetaTint
- 2 dict dup
- begin
- /$BuildFont
- {
- dup/WMode known
- {dup/WMode get}
- {0}
- ifelse
- /$WMode exch def
- $fontname exch
- dup/FontName known
- {
- dup/FontName get
- dup type/stringtype eq{cvn}if
- }
- {/unnamedfont}
- ifelse
- exch
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- 1 index/FontName get known
- {
- pop
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- 1 index get
- null copyfont
- }
- {$deepcopyfont}
- ifelse
- exch 1 index exch/FontBasedOn exch put
- dup/FontName $fontname dup type/stringtype eq{cvn}if put
- definefont
- Adobe_CoolType_Data/InVMDeepCopiedFonts get
- begin
- dup/FontBasedOn get 1 index def
- end
- }bind def
- /$Underprint
- {
- gsave
- x abs y abs gt
- {/y 1000 def}
- {/x -1000 def 500 120 translate}
- ifelse
- Level2?
- {
- [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
- setcolorspace
- }
- {0 setgray}
- ifelse
- 10 setlinewidth
- x .8 mul
- [7 3]
- {
- y mul 8 div 120 sub x 10 div exch moveto
- 0 y 4 div neg rlineto
- dup 0 rlineto
- 0 y 4 div rlineto
- closepath
- gsave
- Level2?
- {.2 setcolor}
- {.8 setgray}
- ifelse
- fill grestore
- stroke
- }
- forall
- pop
- grestore
- }bind def
- end def
- /$Oblique
- 1 dict dup
- begin
- /$BuildFont
- {
- currentglobal exch dup gcheck setglobal
- null copyfont
- begin
- /FontBasedOn
- currentdict/FontName known
- {
- FontName
- dup type/stringtype eq{cvn}if
- }
- {/unnamedfont}
- ifelse
- def
- /FontName $fontname dup type/stringtype eq{cvn}if def
- /currentdistillerparams where
- {pop}
- {
- /FontInfo currentdict/FontInfo known
- {FontInfo null copyfont}
- {2 dict}
- ifelse
- dup
- begin
- /ItalicAngle $italicangle def
- /FontMatrix FontMatrix
- [1 0 ItalicAngle dup sin exch cos div 1 0 0]
- matrix concatmatrix readonly
- end
- 4 2 roll def
- def
- }
- ifelse
- FontName currentdict
- end
- definefont
- exch setglobal
- }bind def
- end def
- /$None
- 1 dict dup
- begin
- /$BuildFont{}bind def
- end def
- end def
- /$Oblique SetSubstituteStrategy
- /$findfontByEnum
- {
- dup type/stringtype eq{cvn}if
- dup/$fontname exch def
- $sname null eq
- {$str cvs dup length $slen sub $slen getinterval}
- {pop $sname}
- ifelse
- $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
- /$match false def
- $SubstituteFont/$dstack countdictstack array dictstack put
- mark
- {
- $fontpat 0 $slen 7 add getinterval
- {/$match exch def exit}
- $str filenameforall
- }
- stopped
- {
- cleardictstack
- currentdict
- true
- $SubstituteFont/$dstack get
- {
- exch
- {
- 1 index eq
- {pop false}
- {true}
- ifelse
- }
- {begin false}
- ifelse
- }
- forall
- pop
- }
- if
- cleartomark
- /$slen 0 def
- $match false ne
- {$match(fonts/)anchorsearch pop pop cvn}
- {/Courier}
- ifelse
- }bind def
- /$ROS 1 dict dup
- begin
- /Adobe 4 dict dup
- begin
- /Japan1 [/Ryumin-Light/HeiseiMin-W3
- /GothicBBB-Medium/HeiseiKakuGo-W5
- /HeiseiMaruGo-W4/Jun101-Light]def
- /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
- /GB1 [/STSong-Light/STHeiti-Regular]def
- /CNS1 [/MKai-Medium/MHei-Medium]def
- end def
- end def
- /$cmapname null def
- /$deepcopyfont
- {
- dup/FontType get 0 eq
- {
- 1 dict dup/FontName/copied put copyfont
- begin
- /FDepVector FDepVector copyarray
- 0 1 2 index length 1 sub
- {
- 2 copy get $deepcopyfont
- dup/FontName/copied put
- /copied exch definefont
- 3 copy put pop pop
- }
- for
- def
- currentdict
- end
- }
- {$Strategies/$Type3Underprint get exec}
- ifelse
- }bind def
- /$buildfontname
- {
- dup/CIDFont findresource/CIDSystemInfo get
- begin
- Registry length Ordering length Supplement 8 string cvs
- 3 copy length 2 add add add string
- dup 5 1 roll dup 0 Registry putinterval
- dup 4 index(-)putinterval
- dup 4 index 1 add Ordering putinterval
- 4 2 roll add 1 add 2 copy(-)putinterval
- end
- 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
- anchorsearch
- {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
- {pop pop pop pop pop}
- ifelse
- length
- $str 1 index(-)putinterval 1 add
- $str 1 index $cmapname $fontpat cvs putinterval
- $cmapname length add
- $str exch 0 exch getinterval cvn
- }bind def
- /$findfontByROS
- {
- /$fontname exch def
- $ROS Registry 2 copy known
- {
- get Ordering 2 copy known
- {get}
- {pop pop[]}
- ifelse
- }
- {pop pop[]}
- ifelse
- false exch
- {
- dup/CIDFont resourcestatus
- {
- pop pop
- save
- 1 index/CIDFont findresource
- dup/WidthsOnly known
- {dup/WidthsOnly get}
- {false}
- ifelse
- exch pop
- exch restore
- {pop}
- {exch pop true exit}
- ifelse
- }
- {pop}
- ifelse
- }
- forall
- {$str cvs $buildfontname}
- {
- false(*)
- {
- save exch
- dup/CIDFont findresource
- dup/WidthsOnly known
- {dup/WidthsOnly get not}
- {true}
- ifelse
- exch/CIDSystemInfo get
- dup/Registry get Registry eq
- exch/Ordering get Ordering eq and and
- {exch restore exch pop true exit}
- {pop restore}
- ifelse
- }
- $str/CIDFont resourceforall
- {$buildfontname}
- {$fontname $findfontByEnum}
- ifelse
- }
- ifelse
- }bind def
- end
- end
- currentdict/$error known currentdict/languagelevel known and dup
- {pop $error/SubstituteFont known}
- if
- dup
- {$error}
- {Adobe_CoolType_Core}
- ifelse
- begin
- {
- /SubstituteFont
- /CMap/Category resourcestatus
- {
- pop pop
- {
- $SubstituteFont
- begin
- /$substituteFound true def
- dup length $slen gt
- $sname null ne or
- $slen 0 gt and
- {
- $sname null eq
- {dup $str cvs dup length $slen sub $slen getinterval cvn}
- {$sname}
- ifelse
- Adobe_CoolType_Data/InVMFontsByCMap get
- 1 index 2 copy known
- {
- get
- false exch
- {
- pop
- currentglobal
- {
- GlobalFontDirectory 1 index known
- {exch pop true exit}
- {pop}
- ifelse
- }
- {
- FontDirectory 1 index known
- {exch pop true exit}
- {
- GlobalFontDirectory 1 index known
- {exch pop true exit}
- {pop}
- ifelse
- }
- ifelse
- }
- ifelse
- }
- forall
- }
- {pop pop false}
- ifelse
- {
- exch pop exch pop
- }
- {
- dup/CMap resourcestatus
- {
- pop pop
- dup/$cmapname exch def
- /CMap findresource/CIDSystemInfo get{def}forall
- $findfontByROS
- }
- {
- 128 string cvs
- dup(-)search
- {
- 3 1 roll search
- {
- 3 1 roll pop
- {dup cvi}
- stopped
- {pop pop pop pop pop $findfontByEnum}
- {
- 4 2 roll pop pop
- exch length
- exch
- 2 index length
- 2 index
- sub
- exch 1 sub -1 0
- {
- $str cvs dup length
- 4 index
- 0
- 4 index
- 4 3 roll add
- getinterval
- exch 1 index exch 3 index exch
- putinterval
- dup/CMap resourcestatus
- {
- pop pop
- 4 1 roll pop pop pop
- dup/$cmapname exch def
- /CMap findresource/CIDSystemInfo get{def}forall
- $findfontByROS
- true exit
- }
- {pop}
- ifelse
- }
- for
- dup type/booleantype eq
- {pop}
- {pop pop pop $findfontByEnum}
- ifelse
- }
- ifelse
- }
- {pop pop pop $findfontByEnum}
- ifelse
- }
- {pop pop $findfontByEnum}
- ifelse
- }
- ifelse
- }
- ifelse
- }
- {//SubstituteFont exec}
- ifelse
- /$slen 0 def
- end
- }
- }
- {
- {
- $SubstituteFont
- begin
- /$substituteFound true def
- dup length $slen gt
- $sname null ne or
- $slen 0 gt and
- {$findfontByEnum}
- {//SubstituteFont exec}
- ifelse
- end
- }
- }
- ifelse
- bind readonly def
- Adobe_CoolType_Core/scfindfont/systemfindfont load put
- }
- {
- /scfindfont
- {
- $SubstituteFont
- begin
- dup systemfindfont
- dup/FontName known
- {dup/FontName get dup 3 index ne}
- {/noname true}
- ifelse
- dup
- {
- /$origfontnamefound 2 index def
- /$origfontname 4 index def/$substituteFound true def
- }
- if
- exch pop
- {
- $slen 0 gt
- $sname null ne
- 3 index length $slen gt or and
- {
- pop dup $findfontByEnum findfont
- dup maxlength 1 add dict
- begin
- {1 index/FID eq{pop pop}{def}ifelse}
- forall
- currentdict
- end
- definefont
- dup/FontName known{dup/FontName get}{null}ifelse
- $origfontnamefound ne
- {
- $origfontname $str cvs print
- ( substitution revised, using )print
- dup/FontName known
- {dup/FontName get}{(unspecified font)}
- ifelse
- $str cvs print(.\n)print
- }
- if
- }
- {exch pop}
- ifelse
- }
- {exch pop}
- ifelse
- end
- }bind def
- }
- ifelse
- end
- end
- Adobe_CoolType_Core_Defined not
- {
- Adobe_CoolType_Core/findfont
- {
- $SubstituteFont
- begin
- $depth 0 eq
- {
- /$fontname 1 index dup type/stringtype ne{$str cvs}if def
- /$substituteFound false def
- }
- if
- /$depth $depth 1 add def
- end
- scfindfont
- $SubstituteFont
- begin
- /$depth $depth 1 sub def
- $substituteFound $depth 0 eq and
- {
- $inVMIndex null ne
- {dup $inVMIndex $AddInVMFont}
- if
- $doSmartSub
- {
- currentdict/$Strategy known
- {$Strategy/$BuildFont get exec}
- if
- }
- if
- }
- if
- end
- }bind put
- }
- if
- }
- if
- end
-/$AddInVMFont
- {
- exch/FontName 2 copy known
- {
- get
- 1 dict dup begin exch 1 index gcheck def end exch
- Adobe_CoolType_Data/InVMFontsByCMap get exch
- $DictAdd
- }
- {pop pop pop}
- ifelse
- }bind def
-/$DictAdd
- {
- 2 copy known not
- {2 copy 4 index length dict put}
- if
- Level2? not
- {
- 2 copy get dup maxlength exch length 4 index length add lt
- 2 copy get dup length 4 index length add exch maxlength 1 index lt
- {
- 2 mul dict
- begin
- 2 copy get{forall}def
- 2 copy currentdict put
- end
- }
- {pop}
- ifelse
- }
- if
- get
- begin
- {def}
- forall
- end
- }bind def
-end
-end
-%%EndResource
-currentglobal true setglobal
-%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
-%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
-%%Version: 1.23 0
-systemdict/languagelevel known dup
- {currentglobal false setglobal}
- {false}
-ifelse
-exch
-userdict/Adobe_CoolType_Utility 2 copy known
- {2 copy get dup maxlength 27 add dict copy}
- {27 dict}
-ifelse put
-Adobe_CoolType_Utility
- begin
- /@eexecStartData
- <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
- 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
- 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
- /@recognizeCIDFont null def
- /ct_Level2? exch def
- /ct_Clone? 1183615869 internaldict dup
- /CCRun known not
- exch/eCCRun known not
- ct_Level2? and or def
-ct_Level2?
- {globaldict begin currentglobal true setglobal}
-if
- /ct_AddStdCIDMap
- ct_Level2?
- {{
- mark
- Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
- {
- ((Hex)57 StartData
- 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
- 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
- d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
- cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
- }
- stopped
- {
- cleartomark
- Adobe_CoolType_Utility/@recognizeCIDFont get
- countdictstack dup array dictstack
- exch 1 sub -1 0
- {
- 2 copy get 3 index eq
- {1 index length exch sub 1 sub{end}repeat exit}
- {pop}
- ifelse
- }
- for
- pop pop
- Adobe_CoolType_Utility/@eexecStartData get eexec
- }
- {cleartomark}
- ifelse
- }}
- {{
- Adobe_CoolType_Utility/@eexecStartData get eexec
- }}
- ifelse bind def
-userdict/cid_extensions known
-dup{cid_extensions/cid_UpdateDB known and}if
- {
- cid_extensions
- begin
- /cid_GetCIDSystemInfo
- {
- 1 index type/stringtype eq
- {exch cvn exch}
- if
- cid_extensions
- begin
- dup load 2 index known
- {
- 2 copy
- cid_GetStatusInfo
- dup null ne
- {
- 1 index load
- 3 index get
- dup null eq
- {pop pop cid_UpdateDB}
- {
- exch
- 1 index/Created get eq
- {exch pop exch pop}
- {pop cid_UpdateDB}
- ifelse
- }
- ifelse
- }
- {pop cid_UpdateDB}
- ifelse
- }
- {cid_UpdateDB}
- ifelse
- end
- }bind def
- end
- }
-if
-ct_Level2?
- {end setglobal}
-if
- /ct_UseNativeCapability? systemdict/composefont known def
- /ct_MakeOCF 35 dict def
- /ct_Vars 25 dict def
- /ct_GlyphDirProcs 6 dict def
- /ct_BuildCharDict 15 dict dup
- begin
- /charcode 2 string def
- /dst_string 1500 string def
- /nullstring()def
- /usewidths? true def
- end def
- ct_Level2?{setglobal}{pop}ifelse
- ct_GlyphDirProcs
- begin
- /GetGlyphDirectory
- {
- systemdict/languagelevel known
- {pop/CIDFont findresource/GlyphDirectory get}
- {
- 1 index/CIDFont findresource/GlyphDirectory
- get dup type/dicttype eq
- {
- dup dup maxlength exch length sub 2 index lt
- {
- dup length 2 index add dict copy 2 index
- /CIDFont findresource/GlyphDirectory 2 index put
- }
- if
- }
- if
- exch pop exch pop
- }
- ifelse
- +
- }def
- /+
- {
- systemdict/languagelevel known
- {
- currentglobal false setglobal
- 3 dict begin
- /vm exch def
- }
- {1 dict begin}
- ifelse
- /$ exch def
- systemdict/languagelevel known
- {
- vm setglobal
- /gvm currentglobal def
- $ gcheck setglobal
- }
- if
- ?{$ begin}if
- }def
- /?{$ type/dicttype eq}def
- /|{
- userdict/Adobe_CoolType_Data known
- {
- Adobe_CoolType_Data/AddWidths? known
- {
- currentdict Adobe_CoolType_Data
- begin
- begin
- AddWidths?
- {
- Adobe_CoolType_Data/CC 3 index put
- ?{def}{$ 3 1 roll put}ifelse
- CC charcode exch 1 index 0 2 index 256 idiv put
- 1 index exch 1 exch 256 mod put
- stringwidth 2 array astore
- currentfont/Widths get exch CC exch put
- }
- {?{def}{$ 3 1 roll put}ifelse}
- ifelse
- end
- end
- }
- {?{def}{$ 3 1 roll put}ifelse} ifelse
- }
- {?{def}{$ 3 1 roll put}ifelse}
- ifelse
- }def
- /!
- {
- ?{end}if
- systemdict/languagelevel known
- {gvm setglobal}
- if
- end
- }def
- /:{string currentfile exch readstring pop}executeonly def
- end
- ct_MakeOCF
- begin
- /ct_cHexEncoding
- [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
- /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
- /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
- /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
- /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
- /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
- /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
- /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
- /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
- /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
- /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
- /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
- /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
- /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
- /ct_CID_STR_SIZE 8000 def
- /ct_mkocfStr100 100 string def
- /ct_defaultFontMtx[.001 0 0 .001 0 0]def
- /ct_1000Mtx[1000 0 0 1000 0 0]def
- /ct_raise{exch cvx exch errordict exch get exec stop}bind def
- /ct_reraise
- {cvx $error/errorname get(Error: )print dup( )cvs print
- errordict exch get exec stop
- }bind def
- /ct_cvnsi
- {
- 1 index add 1 sub 1 exch 0 4 1 roll
- {
- 2 index exch get
- exch 8 bitshift
- add
- }
- for
- exch pop
- }bind def
- /ct_GetInterval
- {
- Adobe_CoolType_Utility/ct_BuildCharDict get
- begin
- /dst_index 0 def
- dup dst_string length gt
- {dup string/dst_string exch def}
- if
- 1 index ct_CID_STR_SIZE idiv
- /arrayIndex exch def
- 2 index arrayIndex get
- 2 index
- arrayIndex ct_CID_STR_SIZE mul
- sub
- {
- dup 3 index add 2 index length le
- {
- 2 index getinterval
- dst_string dst_index 2 index putinterval
- length dst_index add/dst_index exch def
- exit
- }
- {
- 1 index length 1 index sub
- dup 4 1 roll
- getinterval
- dst_string dst_index 2 index putinterval
- pop dup dst_index add/dst_index exch def
- sub
- /arrayIndex arrayIndex 1 add def
- 2 index dup length arrayIndex gt
- {arrayIndex get}
- {
- pop
- exit
- }
- ifelse
- 0
- }
- ifelse
- }
- loop
- pop pop pop
- dst_string 0 dst_index getinterval
- end
- }bind def
- ct_Level2?
- {
- /ct_resourcestatus
- currentglobal mark true setglobal
- {/unknowninstancename/Category resourcestatus}
- stopped
- {cleartomark setglobal true}
- {cleartomark currentglobal not exch setglobal}
- ifelse
- {
- {
- mark 3 1 roll/Category findresource
- begin
- ct_Vars/vm currentglobal put
- ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
- {cleartomark false}
- {{3 2 roll pop true}{cleartomark false}ifelse}
- ifelse
- ct_Vars/vm get setglobal
- end
- }
- }
- {{resourcestatus}}
- ifelse bind def
- /CIDFont/Category ct_resourcestatus
- {pop pop}
- {
- currentglobal true setglobal
- /Generic/Category findresource
- dup length dict copy
- dup/InstanceType/dicttype put
- /CIDFont exch/Category defineresource pop
- setglobal
- }
- ifelse
- ct_UseNativeCapability?
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CIDSystemInfo 3 dict dup begin
- /Registry(Adobe)def
- /Ordering(Identity)def
- /Supplement 0 def
- end def
- /CMapName/Identity-H def
- /CMapVersion 1.000 def
- /CMapType 1 def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- if
- }
- {
- /ct_Category 2 dict begin
- /CIDFont 10 dict def
- /ProcSet 2 dict def
- currentdict
- end
- def
- /defineresource
- {
- ct_Category 1 index 2 copy known
- {
- get
- dup dup maxlength exch length eq
- {
- dup length 10 add dict copy
- ct_Category 2 index 2 index put
- }
- if
- 3 index 3 index put
- pop exch pop
- }
- {pop pop/defineresource/undefined ct_raise}
- ifelse
- }bind def
- /findresource
- {
- ct_Category 1 index 2 copy known
- {
- get
- 2 index 2 copy known
- {get 3 1 roll pop pop}
- {pop pop/findresource/undefinedresource ct_raise}
- ifelse
- }
- {pop pop/findresource/undefined ct_raise}
- ifelse
- }bind def
- /resourcestatus
- {
- ct_Category 1 index 2 copy known
- {
- get
- 2 index known
- exch pop exch pop
- {
- 0 -1 true
- }
- {
- false
- }
- ifelse
- }
- {pop pop/findresource/undefined ct_raise}
- ifelse
- }bind def
- /ct_resourcestatus/resourcestatus load def
- }
- ifelse
- /ct_CIDInit 2 dict
- begin
- /ct_cidfont_stream_init
- {
- {
- dup(Binary)eq
- {
- pop
- null
- currentfile
- ct_Level2?
- {
- {cid_BYTE_COUNT()/SubFileDecode filter}
- stopped
- {pop pop pop}
- if
- }
- if
- /readstring load
- exit
- }
- if
- dup(Hex)eq
- {
- pop
- currentfile
- ct_Level2?
- {
- {null exch/ASCIIHexDecode filter/readstring}
- stopped
- {pop exch pop(>)exch/readhexstring}
- if
- }
- {(>)exch/readhexstring}
- ifelse
- load
- exit
- }
- if
- /StartData/typecheck ct_raise
- }
- loop
- cid_BYTE_COUNT ct_CID_STR_SIZE le
- {
- 2 copy cid_BYTE_COUNT string exch exec
- pop
- 1 array dup
- 3 -1 roll
- 0 exch put
- }
- {
- cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
- dup array exch 2 sub 0 exch 1 exch
- {
- 2 copy
- 5 index
- ct_CID_STR_SIZE
- string
- 6 index exec
- pop
- put
- pop
- }
- for
- 2 index
- cid_BYTE_COUNT ct_CID_STR_SIZE mod string
- 3 index exec
- pop
- 1 index exch
- 1 index length 1 sub
- exch put
- }
- ifelse
- cid_CIDFONT exch/GlyphData exch put
- 2 index null eq
- {
- pop pop pop
- }
- {
- pop/readstring load
- 1 string exch
- {
- 3 copy exec
- pop
- dup length 0 eq
- {
- pop pop pop pop pop
- true exit
- }
- if
- 4 index
- eq
- {
- pop pop pop pop
- false exit
- }
- if
- }
- loop
- pop
- }
- ifelse
- }bind def
- /StartData
- {
- mark
- {
- currentdict
- dup/FDArray get 0 get/FontMatrix get
- 0 get 0.001 eq
- {
- dup/CDevProc known not
- {
- /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
- {get}
- {
- pop pop
- {pop pop pop pop pop 0 -1000 7 index 2 div 880}
- }
- ifelse
- def
- }
- if
- }
- {
- /CDevProc
- {
- pop pop pop pop pop
- 0
- 1 cid_temp/cid_CIDFONT get
- /FDArray get 0 get
- /FontMatrix get 0 get div
- 7 index 2 div
- 1 index 0.88 mul
- }def
- }
- ifelse
- /cid_temp 15 dict def
- cid_temp
- begin
- /cid_CIDFONT exch def
- 3 copy pop
- dup/cid_BYTE_COUNT exch def 0 gt
- {
- ct_cidfont_stream_init
- FDArray
- {
- /Private get
- dup/SubrMapOffset known
- {
- begin
- /Subrs SubrCount array def
- Subrs
- SubrMapOffset
- SubrCount
- SDBytes
- ct_Level2?
- {
- currentdict dup/SubrMapOffset undef
- dup/SubrCount undef
- /SDBytes undef
- }
- if
- end
- /cid_SD_BYTES exch def
- /cid_SUBR_COUNT exch def
- /cid_SUBR_MAP_OFFSET exch def
- /cid_SUBRS exch def
- cid_SUBR_COUNT 0 gt
- {
- GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
- 0 cid_SD_BYTES ct_cvnsi
- 0 1 cid_SUBR_COUNT 1 sub
- {
- exch 1 index
- 1 add
- cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
- GlyphData exch cid_SD_BYTES ct_GetInterval
- 0 cid_SD_BYTES ct_cvnsi
- cid_SUBRS 4 2 roll
- GlyphData exch
- 4 index
- 1 index
- sub
- ct_GetInterval
- dup length string copy put
- }
- for
- pop
- }
- if
- }
- {pop}
- ifelse
- }
- forall
- }
- if
- cleartomark pop pop
- end
- CIDFontName currentdict/CIDFont defineresource pop
- end end
- }
- stopped
- {cleartomark/StartData ct_reraise}
- if
- }bind def
- currentdict
- end def
- /ct_saveCIDInit
- {
- /CIDInit/ProcSet ct_resourcestatus
- {true}
- {/CIDInitC/ProcSet ct_resourcestatus}
- ifelse
- {
- pop pop
- /CIDInit/ProcSet findresource
- ct_UseNativeCapability?
- {pop null}
- {/CIDInit ct_CIDInit/ProcSet defineresource pop}
- ifelse
- }
- {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
- ifelse
- ct_Vars exch/ct_oldCIDInit exch put
- }bind def
- /ct_restoreCIDInit
- {
- ct_Vars/ct_oldCIDInit get dup null ne
- {/CIDInit exch/ProcSet defineresource pop}
- {pop}
- ifelse
- }bind def
- /ct_BuildCharSetUp
- {
- 1 index
- begin
- CIDFont
- begin
- Adobe_CoolType_Utility/ct_BuildCharDict get
- begin
- /ct_dfCharCode exch def
- /ct_dfDict exch def
- CIDFirstByte ct_dfCharCode add
- dup CIDCount ge
- {pop 0}
- if
- /cid exch def
- {
- GlyphDirectory cid 2 copy known
- {get}
- {pop pop nullstring}
- ifelse
- dup length FDBytes sub 0 gt
- {
- dup
- FDBytes 0 ne
- {0 FDBytes ct_cvnsi}
- {pop 0}
- ifelse
- /fdIndex exch def
- dup length FDBytes sub FDBytes exch getinterval
- /charstring exch def
- exit
- }
- {
- pop
- cid 0 eq
- {/charstring nullstring def exit}
- if
- /cid 0 def
- }
- ifelse
- }
- loop
- }def
- /ct_SetCacheDevice
- {
- 0 0 moveto
- dup stringwidth
- 3 -1 roll
- true charpath
- pathbbox
- 0 -1000
- 7 index 2 div 880
- setcachedevice2
- 0 0 moveto
- }def
- /ct_CloneSetCacheProc
- {
- 1 eq
- {
- stringwidth
- pop -2 div -880
- 0 -1000 setcharwidth
- moveto
- }
- {
- usewidths?
- {
- currentfont/Widths get cid
- 2 copy known
- {get exch pop aload pop}
- {pop pop stringwidth}
- ifelse
- }
- {stringwidth}
- ifelse
- setcharwidth
- 0 0 moveto
- }
- ifelse
- }def
- /ct_Type3ShowCharString
- {
- ct_FDDict fdIndex 2 copy known
- {get}
- {
- currentglobal 3 1 roll
- 1 index gcheck setglobal
- ct_Type1FontTemplate dup maxlength dict copy
- begin
- FDArray fdIndex get
- dup/FontMatrix 2 copy known
- {get}
- {pop pop ct_defaultFontMtx}
- ifelse
- /FontMatrix exch dup length array copy def
- /Private get
- /Private exch def
- /Widths rootfont/Widths get def
- /CharStrings 1 dict dup/.notdef
- <d841272cf18f54fc13>dup length string copy put def
- currentdict
- end
- /ct_Type1Font exch definefont
- dup 5 1 roll put
- setglobal
- }
- ifelse
- dup/CharStrings get 1 index/Encoding get
- ct_dfCharCode get charstring put
- rootfont/WMode 2 copy known
- {get}
- {pop pop 0}
- ifelse
- exch
- 1000 scalefont setfont
- ct_str1 0 ct_dfCharCode put
- ct_str1 exch ct_dfSetCacheProc
- ct_SyntheticBold
- {
- currentpoint
- ct_str1 show
- newpath
- moveto
- ct_str1 true charpath
- ct_StrokeWidth setlinewidth
- stroke
- }
- {ct_str1 show}
- ifelse
- }def
- /ct_Type4ShowCharString
- {
- ct_dfDict ct_dfCharCode charstring
- FDArray fdIndex get
- dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
- {ct_1000Mtx matrix concatmatrix concat}
- {pop}
- ifelse
- /Private get
- Adobe_CoolType_Utility/ct_Level2? get not
- {
- ct_dfDict/Private
- 3 -1 roll
- {put}
- 1183615869 internaldict/superexec get exec
- }
- if
- 1183615869 internaldict
- Adobe_CoolType_Utility/ct_Level2? get
- {1 index}
- {3 index/Private get mark 6 1 roll}
- ifelse
- dup/RunInt known
- {/RunInt get}
- {pop/CCRun}
- ifelse
- get exec
- Adobe_CoolType_Utility/ct_Level2? get not
- {cleartomark}
- if
- }bind def
- /ct_BuildCharIncremental
- {
- {
- Adobe_CoolType_Utility/ct_MakeOCF get begin
- ct_BuildCharSetUp
- ct_ShowCharString
- }
- stopped
- {stop}
- if
- end
- end
- end
- end
- }bind def
- /BaseFontNameStr(BF00)def
- /ct_Type1FontTemplate 14 dict
- begin
- /FontType 1 def
- /FontMatrix [0.001 0 0 0.001 0 0]def
- /FontBBox [-250 -250 1250 1250]def
- /Encoding ct_cHexEncoding def
- /PaintType 0 def
- currentdict
- end def
- /BaseFontTemplate 11 dict
- begin
- /FontMatrix [0.001 0 0 0.001 0 0]def
- /FontBBox [-250 -250 1250 1250]def
- /Encoding ct_cHexEncoding def
- /BuildChar/ct_BuildCharIncremental load def
- ct_Clone?
- {
- /FontType 3 def
- /ct_ShowCharString/ct_Type3ShowCharString load def
- /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
- /ct_SyntheticBold false def
- /ct_StrokeWidth 1 def
- }
- {
- /FontType 4 def
- /Private 1 dict dup/lenIV 4 put def
- /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
- /PaintType 0 def
- /ct_ShowCharString/ct_Type4ShowCharString load def
- }
- ifelse
- /ct_str1 1 string def
- currentdict
- end def
- /BaseFontDictSize BaseFontTemplate length 5 add def
- /ct_matrixeq
- {
- true 0 1 5
- {
- dup 4 index exch get exch 3 index exch get eq and
- dup not
- {exit}
- if
- }
- for
- exch pop exch pop
- }bind def
- /ct_makeocf
- {
- 15 dict
- begin
- exch/WMode exch def
- exch/FontName exch def
- /FontType 0 def
- /FMapType 2 def
- dup/FontMatrix known
- {dup/FontMatrix get/FontMatrix exch def}
- {/FontMatrix matrix def}
- ifelse
- /bfCount 1 index/CIDCount get 256 idiv 1 add
- dup 256 gt{pop 256}if def
- /Encoding
- 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
- bfCount 1 255{2 copy bfCount put pop}for
- def
- /FDepVector bfCount dup 256 lt{1 add}if array def
- BaseFontTemplate BaseFontDictSize dict copy
- begin
- /CIDFont exch def
- CIDFont/FontBBox known
- {CIDFont/FontBBox get/FontBBox exch def}
- if
- CIDFont/CDevProc known
- {CIDFont/CDevProc get/CDevProc exch def}
- if
- currentdict
- end
- BaseFontNameStr 3(0)putinterval
- 0 1 bfCount dup 256 eq{1 sub}if
- {
- FDepVector exch
- 2 index BaseFontDictSize dict copy
- begin
- dup/CIDFirstByte exch 256 mul def
- FontType 3 eq
- {/ct_FDDict 2 dict def}
- if
- currentdict
- end
- 1 index 16
- BaseFontNameStr 2 2 getinterval cvrs pop
- BaseFontNameStr exch definefont
- put
- }
- for
- ct_Clone?
- {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
- if
- FontName
- currentdict
- end
- definefont
- ct_Clone?
- {
- gsave
- dup 1000 scalefont setfont
- ct_BuildCharDict
- begin
- /usewidths? false def
- currentfont/Widths get
- begin
- exch/CIDFont get/GlyphDirectory get
- {
- pop
- dup charcode exch 1 index 0 2 index 256 idiv put
- 1 index exch 1 exch 256 mod put
- stringwidth 2 array astore def
- }
- forall
- end
- /usewidths? true def
- end
- grestore
- }
- {exch pop}
- ifelse
- }bind def
- currentglobal true setglobal
- /ct_ComposeFont
- {
- ct_UseNativeCapability?
- {
- 2 index/CMap ct_resourcestatus
- {pop pop exch pop}
- {
- /CIDInit/ProcSet findresource
- begin
- 12 dict
- begin
- begincmap
- /CMapName 3 index def
- /CMapVersion 1.000 def
- /CMapType 1 def
- exch/WMode exch def
- /CIDSystemInfo 3 dict dup
- begin
- /Registry(Adobe)def
- /Ordering
- CMapName ct_mkocfStr100 cvs
- (Adobe-)search
- {
- pop pop
- (-)search
- {
- dup length string copy
- exch pop exch pop
- }
- {pop(Identity)}
- ifelse
- }
- {pop (Identity)}
- ifelse
- def
- /Supplement 0 def
- end def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
- composefont
- }
- {
- 3 2 roll pop
- 0 get/CIDFont findresource
- ct_makeocf
- }
- ifelse
- }bind def
- setglobal
- /ct_MakeIdentity
- {
- ct_UseNativeCapability?
- {
- 1 index/CMap ct_resourcestatus
- {pop pop}
- {
- /CIDInit/ProcSet findresource begin
- 12 dict begin
- begincmap
- /CMapName 2 index def
- /CMapVersion 1.000 def
- /CMapType 1 def
- /CIDSystemInfo 3 dict dup
- begin
- /Registry(Adobe)def
- /Ordering
- CMapName ct_mkocfStr100 cvs
- (Adobe-)search
- {
- pop pop
- (-)search
- {dup length string copy exch pop exch pop}
- {pop(Identity)}
- ifelse
- }
- {pop(Identity)}
- ifelse
- def
- /Supplement 0 def
- end def
- 1 begincodespacerange
- <0000><FFFF>
- endcodespacerange
- 1 begincidrange
- <0000><FFFF>0
- endcidrange
- endcmap
- CMapName currentdict/CMap defineresource pop
- end
- end
- }
- ifelse
- composefont
- }
- {
- exch pop
- 0 get/CIDFont findresource
- ct_makeocf
- }
- ifelse
- }bind def
- currentdict readonly pop
- end
- end
-%%EndResource
-setglobal
-%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
-%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
-%%Version: 1.0 0
-userdict/ct_T42Dict 15 dict put
-ct_T42Dict begin
-/Is2015?
-{
- version
- cvi
- 2015
- ge
-}bind def
-/AllocGlyphStorage
-{
- Is2015?
- {
- pop
- }
- {
- {string}forall
- }ifelse
-}bind def
-/Type42DictBegin
-{
-25 dict begin
- /FontName exch def
- /CharStrings 256 dict
-begin
- /.notdef 0 def
- currentdict
-end def
- /Encoding exch def
- /PaintType 0 def
- /FontType 42 def
- /FontMatrix[1 0 0 1 0 0]def
- 4 array astore cvx/FontBBox exch def
- /sfnts
-}bind def
-/Type42DictEnd
-{
- currentdict dup/FontName get exch definefont end
-ct_T42Dict exch
-dup/FontName get exch put
-}bind def
-/RD{string currentfile exch readstring pop}executeonly def
-/PrepFor2015
-{
-Is2015?
-{
- /GlyphDirectory
- 16
- dict def
- sfnts 0 get
- dup
- 2 index
- (glyx)
- putinterval
- 2 index
- (locx)
- putinterval
- pop
- pop
-}
-{
- pop
- pop
-}ifelse
-}bind def
-/AddT42Char
-{
-Is2015?
-{
- /GlyphDirectory get
- begin
- def
- end
- pop
- pop
-}
-{
- /sfnts get
- 4 index
- get
- 3 index
- 2 index
- putinterval
- pop
- pop
- pop
- pop
-}ifelse
-}bind def
-/T0AddT42Mtx2
-{
-/CIDFont findresource/Metrics2 get begin def end
-}bind def
-end
-%%EndResource
-currentglobal true setglobal
-%%BeginFile: MMFauxFont.prc
-%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
-%%All Rights Reserved.
-userdict /ct_EuroDict 10 dict put
-ct_EuroDict begin
-/ct_CopyFont
-{
- { 1 index /FID ne {def} {pop pop} ifelse} forall
-} def
-/ct_GetGlyphOutline
-{
- gsave
- initmatrix newpath
- exch findfont dup
- length 1 add dict
- begin
- ct_CopyFont
- /Encoding Encoding dup length array copy
- dup
- 4 -1 roll
- 0 exch put
- def
- currentdict
- end
- /ct_EuroFont exch definefont
- 1000 scalefont setfont
- 0 0 moveto
- [
- <00> stringwidth
- <00> false charpath
- pathbbox
- [
- {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
- grestore
- counttomark 8 add
-}
-def
-/ct_MakeGlyphProc
-{
- ] cvx
- /ct_PSBuildGlyph cvx
- ] cvx
-} def
-/ct_PSBuildGlyph
-{
- gsave
- 8 -1 roll pop
- 7 1 roll
- 6 -2 roll ct_FontMatrix transform 6 2 roll
- 4 -2 roll ct_FontMatrix transform 4 2 roll
- ct_FontMatrix transform
- currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
- dup 9 1 roll
- {
- currentdict /StrokeWidth 2 copy known
- {
- get 2 div
- 0 ct_FontMatrix dtransform pop
- 5 1 roll
- 4 -1 roll 4 index sub
- 4 1 roll
- 3 -1 roll 4 index sub
- 3 1 roll
- exch 4 index add exch
- 4 index add
- 5 -1 roll pop
- }
- {
- pop pop
- }
- ifelse
- }
- if
- setcachedevice
- ct_FontMatrix concat
- ct_PSPathOps begin
- exec
- end
- {
- currentdict /StrokeWidth 2 copy known
- { get }
- { pop pop 0 }
- ifelse
- setlinewidth stroke
- }
- {
- fill
- }
- ifelse
- grestore
-} def
-/ct_PSPathOps 4 dict dup begin
- /m {moveto} def
- /l {lineto} def
- /c {curveto} def
- /cp {closepath} def
-end
-def
-/ct_matrix1000 [1000 0 0 1000 0 0] def
-/ct_AddGlyphProc
-{
- 2 index findfont dup length 4 add dict
- begin
- ct_CopyFont
- /CharStrings CharStrings dup length 1 add dict copy
- begin
- 3 1 roll def
- currentdict
- end
- def
- /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
- /ct_PSBuildGlyph /ct_PSBuildGlyph load def
- /ct_PSPathOps /ct_PSPathOps load def
- currentdict
- end
- definefont pop
-}
-def
-systemdict /languagelevel known
-{
- /ct_AddGlyphToPrinterFont {
- 2 copy
- ct_GetGlyphOutline 3 add -1 roll restore
- ct_MakeGlyphProc
- ct_AddGlyphProc
- } def
-}
-{
- /ct_AddGlyphToPrinterFont {
- pop pop restore
- Adobe_CTFauxDict /$$$FONTNAME get
- /Euro
- Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
- ct_EuroDict exch get
- ct_AddGlyphProc
- } def
-} ifelse
-/AdobeSansMM
-{
-556 0 24 -19 541 703
- {
- 541 628 m
- 510 669 442 703 354 703 c
- 201 703 117 607 101 444 c
- 50 444 l
- 25 372 l
- 97 372 l
- 97 301 l
- 49 301 l
- 24 229 l
- 103 229 l
- 124 67 209 -19 350 -19 c
- 435 -19 501 25 509 32 c
- 509 131 l
- 492 105 417 60 343 60 c
- 267 60 204 127 197 229 c
- 406 229 l
- 430 301 l
- 191 301 l
- 191 372 l
- 455 372 l
- 479 444 l
- 194 444 l
- 201 531 245 624 348 624 c
- 433 624 484 583 509 534 c
- cp
- 556 0 m
- }
-ct_PSBuildGlyph
-} def
-/AdobeSerifMM
-{
-500 0 10 -12 484 692
- {
- 347 298 m
- 171 298 l
- 170 310 170 322 170 335 c
- 170 362 l
- 362 362 l
- 374 403 l
- 172 403 l
- 184 580 244 642 308 642 c
- 380 642 434 574 457 457 c
- 481 462 l
- 474 691 l
- 449 691 l
- 433 670 429 657 410 657 c
- 394 657 360 692 299 692 c
- 204 692 94 604 73 403 c
- 22 403 l
- 10 362 l
- 70 362 l
- 69 352 69 341 69 330 c
- 69 319 69 308 70 298 c
- 22 298 l
- 10 257 l
- 73 257 l
- 97 57 216 -12 295 -12 c
- 364 -12 427 25 484 123 c
- 458 142 l
- 425 101 384 37 316 37 c
- 256 37 189 84 173 257 c
- 335 257 l
- cp
- 500 0 m
- }
-ct_PSBuildGlyph
-} def
-end
-%%EndFile
-setglobal
-Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
-%%BeginResource: procset Adobe_AGM_Image 1.0 0
-%%Version: 1.0 0
-%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
-systemdict/setpacking known
-{
- currentpacking
- true setpacking
-}if
-userdict/Adobe_AGM_Image 71 dict dup begin put
-/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
-/nd{
- null def
-}bind def
-/AGMIMG_&image nd
-/AGMIMG_&colorimage nd
-/AGMIMG_&imagemask nd
-/AGMIMG_mbuf()def
-/AGMIMG_ybuf()def
-/AGMIMG_kbuf()def
-/AGMIMG_c 0 def
-/AGMIMG_m 0 def
-/AGMIMG_y 0 def
-/AGMIMG_k 0 def
-/AGMIMG_tmp nd
-/AGMIMG_imagestring0 nd
-/AGMIMG_imagestring1 nd
-/AGMIMG_imagestring2 nd
-/AGMIMG_imagestring3 nd
-/AGMIMG_imagestring4 nd
-/AGMIMG_imagestring5 nd
-/AGMIMG_cnt nd
-/AGMIMG_fsave nd
-/AGMIMG_colorAry nd
-/AGMIMG_override nd
-/AGMIMG_name nd
-/AGMIMG_maskSource nd
-/AGMIMG_flushfilters nd
-/invert_image_samples nd
-/knockout_image_samples nd
-/img nd
-/sepimg nd
-/devnimg nd
-/idximg nd
-/ds
-{
- Adobe_AGM_Core begin
- Adobe_AGM_Image begin
- /AGMIMG_&image systemdict/image get def
- /AGMIMG_&imagemask systemdict/imagemask get def
- /colorimage where{
- pop
- /AGMIMG_&colorimage/colorimage ldf
- }if
- end
- end
-}def
-/ps
-{
- Adobe_AGM_Image begin
- /AGMIMG_ccimage_exists{/customcolorimage where
- {
- pop
- /Adobe_AGM_OnHost_Seps where
- {
- pop false
- }{
- /Adobe_AGM_InRip_Seps where
- {
- pop false
- }{
- true
- }ifelse
- }ifelse
- }{
- false
- }ifelse
- }bdf
- level2{
- /invert_image_samples
- {
- Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
- /Decode[Decode 1 get Decode 0 get]def
- }def
- /knockout_image_samples
- {
- Operator/imagemask ne{
- /Decode[1 1]def
- }if
- }def
- }{
- /invert_image_samples
- {
- {1 exch sub}currenttransfer addprocs settransfer
- }def
- /knockout_image_samples
- {
- {pop 1}currenttransfer addprocs settransfer
- }def
- }ifelse
- /img/imageormask ldf
- /sepimg/sep_imageormask ldf
- /devnimg/devn_imageormask ldf
- /idximg/indexed_imageormask ldf
- /_ctype 7 def
- currentdict{
- dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
- bind
- }if
- def
- }forall
-}def
-/pt
-{
- end
-}def
-/dt
-{
-}def
-/AGMIMG_flushfilters
-{
- dup type/arraytype ne
- {1 array astore}if
- dup 0 get currentfile ne
- {dup 0 get flushfile}if
- {
- dup type/filetype eq
- {
- dup status 1 index currentfile ne and
- {closefile}
- {pop}
- ifelse
- }{pop}ifelse
- }forall
-}def
-/AGMIMG_init_common
-{
- currentdict/T known{/ImageType/T ldf currentdict/T undef}if
- currentdict/W known{/Width/W ldf currentdict/W undef}if
- currentdict/H known{/Height/H ldf currentdict/H undef}if
- currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
- currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
- currentdict/D known{/Decode/D ldf currentdict/D undef}if
- currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
- currentdict/O known{
- /Operator/O load 1 eq{
- /imagemask
- }{
- /O load 2 eq{
- /image
- }{
- /colorimage
- }ifelse
- }ifelse
- def
- currentdict/O undef
- }if
- currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
- currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
- currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
- currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
- /DataSource load xcheck not{
- DataSource type/arraytype eq{
- DataSource 0 get type/filetype eq{
- /_Filters DataSource def
- currentdict/MultipleDataSources known not{
- /DataSource DataSource dup length 1 sub get def
- }if
- }if
- }if
- currentdict/MultipleDataSources known not{
- /MultipleDataSources DataSource type/arraytype eq{
- DataSource length 1 gt
- }
- {false}ifelse def
- }if
- }if
- /NComponents Decode length 2 div def
- currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
-}bdf
-/imageormask_sys
-{
- begin
- AGMIMG_init_common
- save mark
- level2{
- currentdict
- Operator/imagemask eq{
- AGMIMG_&imagemask
- }{
- use_mask{
- process_mask AGMIMG_&image
- }{
- AGMIMG_&image
- }ifelse
- }ifelse
- }{
- Width Height
- Operator/imagemask eq{
- Decode 0 get 1 eq Decode 1 get 0 eq and
- ImageMatrix/DataSource load
- AGMIMG_&imagemask
- }{
- BitsPerComponent ImageMatrix/DataSource load
- AGMIMG_&image
- }ifelse
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- cleartomark restore
- end
-}def
-/overprint_plate
-{
- currentoverprint{
- 0 get dup type/nametype eq{
- dup/DeviceGray eq{
- pop AGMCORE_black_plate not
- }{
- /DeviceCMYK eq{
- AGMCORE_is_cmyk_sep not
- }if
- }ifelse
- }{
- false exch
- {
- AGMOHS_sepink eq or
- }forall
- not
- }ifelse
- }{
- pop false
- }ifelse
-}def
-/process_mask
-{
- level3{
- dup begin
- /ImageType 1 def
- end
- 4 dict begin
- /DataDict exch def
- /ImageType 3 def
- /InterleaveType 3 def
- /MaskDict 9 dict begin
- /ImageType 1 def
- /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
- /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
- /ImageMatrix[Width 0 0 Height neg 0 Height]def
- /NComponents 1 def
- /BitsPerComponent 1 def
- /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
- /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
- currentdict end def
- currentdict end
- }if
-}def
-/use_mask
-{
- dup/Mask known {dup/Mask get}{false}ifelse
-}def
-/imageormask
-{
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }
- {
- save mark
- level2 AGMCORE_host_sep not and{
- currentdict
- Operator/imagemask eq DeviceN_PS2 not and{
- imagemask
- }{
- AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
- [/Separation/Black/DeviceGray{}]setcolorspace
- /Decode[Decode 1 get Decode 0 get]def
- }if
- use_mask{
- process_mask image
- }{
- DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
- {
- Names convert_to_process not{
- 2 dict begin
- /imageDict xdf
- /names_index 0 def
- gsave
- imageDict write_image_file{
- Names{
- dup(None)ne{
- [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
- Operator imageDict read_image_file
- names_index 0 eq{true setoverprint}if
- /names_index names_index 1 add def
- }{
- pop
- }ifelse
- }forall
- close_image_file
- }if
- grestore
- end
- }{
- Operator/imagemask eq{
- imagemask
- }{
- image
- }ifelse
- }ifelse
- }{
- Operator/imagemask eq{
- imagemask
- }{
- image
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- }{
- Width Height
- Operator/imagemask eq{
- Decode 0 get 1 eq Decode 1 get 0 eq and
- ImageMatrix/DataSource load
- /Adobe_AGM_OnHost_Seps where{
- pop imagemask
- }{
- currentgray 1 ne{
- currentdict imageormask_sys
- }{
- currentoverprint not{
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentdict ignoreimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- BitsPerComponent ImageMatrix
- MultipleDataSources{
- 0 1 NComponents 1 sub{
- DataSource exch get
- }for
- }{
- /DataSource load
- }ifelse
- Operator/colorimage eq{
- AGMCORE_host_sep{
- MultipleDataSources level2 or NComponents 4 eq and{
- AGMCORE_is_cmyk_sep{
- MultipleDataSources{
- /DataSource DataSource 0 get xcheck
- {
- [
- DataSource 0 get/exec cvx
- DataSource 1 get/exec cvx
- DataSource 2 get/exec cvx
- DataSource 3 get/exec cvx
- /AGMCORE_get_ink_data cvx
- ]cvx
- }{
- DataSource aload pop AGMCORE_get_ink_data
- }ifelse def
- }{
- /DataSource
- Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
- /DataSource load
- filter_cmyk 0()/SubFileDecode filter def
- }ifelse
- /Decode[Decode 0 get Decode 1 get]def
- /MultipleDataSources false def
- /NComponents 1 def
- /Operator/image def
- invert_image_samples
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentoverprint not Operator/imagemask eq and{
- 1 AGMCORE_&setgray
- currentdict imageormask_sys
- }{
- currentdict ignoreimagedata
- }ifelse
- }ifelse
- }{
- MultipleDataSources NComponents AGMIMG_&colorimage
- }ifelse
- }{
- true NComponents colorimage
- }ifelse
- }{
- Operator/image eq{
- AGMCORE_host_sep{
- /DoImage true def
- currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
- {
- AGMCORE_black_plate not Operator/imagemask ne and{
- /DoImage false def
- currentdict ignoreimagedata
- }if
- }if
- 1 AGMCORE_&setgray
- DoImage
- {currentdict imageormask_sys}if
- }{
- use_mask{
- process_mask image
- }{
- image
- }ifelse
- }ifelse
- }{
- Operator/knockout eq{
- pop pop pop pop pop
- currentcolorspace overprint_plate not{
- knockout_unitsq
- }if
- }if
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
-}def
-/sep_imageormask
-{
- /sep_colorspace_dict AGMCORE_gget begin
- CSA map_csa
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }{
- save mark
- AGMCORE_avoid_L2_sep_space{
- /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
- }if
- AGMIMG_ccimage_exists
- MappedCSA 0 get/DeviceCMYK eq and
- currentdict/Components known and
- Name()ne and
- Name(All)ne and
- Operator/image eq and
- AGMCORE_producing_seps not and
- level2 not and
- {
- Width Height BitsPerComponent ImageMatrix
- [
- /DataSource load/exec cvx
- {
- 0 1 2 index length 1 sub{
- 1 index exch
- 2 copy get 255 xor put
- }for
- }/exec cvx
- ]cvx bind
- MappedCSA 0 get/DeviceCMYK eq{
- Components aload pop
- }{
- 0 0 0 Components aload pop 1 exch sub
- }ifelse
- Name findcmykcustomcolor
- customcolorimage
- }{
- AGMCORE_producing_seps not{
- level2{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
- [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
- /sep_tint AGMCORE_gget setcolor
- }if
- currentdict imageormask
- }{
- currentdict
- Operator/imagemask eq{
- imageormask
- }{
- sep_imageormask_lev1
- }ifelse
- }ifelse
- }{
- AGMCORE_host_sep{
- Operator/knockout eq{
- currentdict/ImageMatrix get concat
- knockout_unitsq
- }{
- currentgray 1 ne{
- AGMCORE_is_cmyk_sep Name(All)ne and{
- level2{
- Name AGMCORE_IsSeparationAProcessColor
- {
- Operator/imagemask eq{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
- }if
- }{
- invert_image_samples
- }ifelse
- }{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- [/Separation Name[/DeviceGray]
- {
- sep_colorspace_proc AGMCORE_get_ink_data
- 1 exch sub
- }bind
- ]AGMCORE_&setcolorspace
- /sep_tint AGMCORE_gget AGMCORE_&setcolor
- }if
- }ifelse
- currentdict imageormask_sys
- }{
- currentdict
- Operator/imagemask eq{
- imageormask_sys
- }{
- sep_image_lev1_sep
- }ifelse
- }ifelse
- }{
- Operator/imagemask ne{
- invert_image_samples
- }if
- currentdict imageormask_sys
- }ifelse
- }{
- currentoverprint not Name(All)eq or Operator/imagemask eq and{
- currentdict imageormask_sys
- }{
- currentoverprint not
- {
- gsave
- knockout_unitsq
- grestore
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
- currentcolorspace 0 get/Separation ne{
- [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
- /sep_tint AGMCORE_gget setcolor
- }if
- }if
- currentoverprint
- MappedCSA 0 get/DeviceCMYK eq and
- Name AGMCORE_IsSeparationAProcessColor not and
- //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
- Name(All)ne and{
- imageormask_l2_overprint
- }{
- currentdict imageormask
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
- end
-}def
-/colorSpaceElemCnt
-{
- mark currentcolor counttomark dup 2 add 1 roll cleartomark
-}bdf
-/devn_sep_datasource
-{
- 1 dict begin
- /dataSource xdf
- [
- 0 1 dataSource length 1 sub{
- dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
- /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
- }for
- ]cvx bind
- end
-}bdf
-/devn_alt_datasource
-{
- 11 dict begin
- /convProc xdf
- /origcolorSpaceElemCnt xdf
- /origMultipleDataSources xdf
- /origBitsPerComponent xdf
- /origDecode xdf
- /origDataSource xdf
- /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
- /DataSource origMultipleDataSources
- {
- [
- BitsPerComponent 8 idiv origDecode length 2 idiv mul string
- 0 1 origDecode length 2 idiv 1 sub
- {
- dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
- origDataSource exch get 0()/SubFileDecode filter
- BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
- }for
- ]bind cvx
- }{origDataSource}ifelse 0()/SubFileDecode filter def
- [
- origcolorSpaceElemCnt string
- 0 2 origDecode length 2 sub
- {
- dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
- 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
- }for
- /convProc load/exec cvx
- origcolorSpaceElemCnt 1 sub -1 0
- {
- /dup cvx 2/add cvx/index cvx
- 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
- }for
- ]bind cvx 0()/SubFileDecode filter
- end
-}bdf
-/devn_imageormask
-{
- /devicen_colorspace_dict AGMCORE_gget begin
- CSA map_csa
- 2 dict begin
- dup
- /srcDataStrs[3 -1 roll begin
- AGMIMG_init_common
- currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
- {
- Width Decode length 2 div mul cvi
- {
- dup 65535 gt{1 add 2 div cvi}{exit}ifelse
- }loop
- string
- }repeat
- end]def
- /dstDataStr srcDataStrs 0 get length string def
- begin
- AGMIMG_init_common
- SkipImageProc{
- currentdict consumeimagedata
- }{
- save mark
- AGMCORE_producing_seps not{
- level3 not{
- Operator/imagemask ne{
- /DataSource[[
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
- /MultipleDataSources true def
- /Decode colorSpaceElemCnt[exch{0 1}repeat]def
- }if
- }if
- currentdict imageormask
- }{
- AGMCORE_host_sep{
- Names convert_to_process{
- CSA get_csa_by_name 0 get/DeviceCMYK eq{
- /DataSource
- Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource
- filter_cmyk 0()/SubFileDecode filter def
- /MultipleDataSources false def
- /Decode[1 0]def
- /DeviceGray setcolorspace
- currentdict imageormask_sys
- }{
- AGMCORE_report_unsupported_color_space
- AGMCORE_black_plate{
- /DataSource
- DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
- CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
- devn_alt_datasource
- /MultipleDataSources false def
- /Decode colorSpaceElemCnt[exch{0 1}repeat]def
- currentdict imageormask_sys
- }{
- gsave
- knockout_unitsq
- grestore
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }
- {
- /devicen_colorspace_dict AGMCORE_gget/names_index known{
- Operator/imagemask ne{
- MultipleDataSources{
- /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
- /MultipleDataSources false def
- }{
- /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
- }ifelse
- invert_image_samples
- }if
- currentdict imageormask_sys
- }{
- currentoverprint not Operator/imagemask eq and{
- currentdict imageormask_sys
- }{
- currentoverprint not
- {
- gsave
- knockout_unitsq
- grestore
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- currentdict imageormask
- }ifelse
- }ifelse
- cleartomark restore
- }ifelse
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
- end
- end
-}def
-/imageormask_l2_overprint
-{
- currentdict
- currentcmykcolor add add add 0 eq{
- currentdict consumeimagedata
- }{
- level3{
- currentcmykcolor
- /AGMIMG_k xdf
- /AGMIMG_y xdf
- /AGMIMG_m xdf
- /AGMIMG_c xdf
- Operator/imagemask eq{
- [/DeviceN[
- AGMIMG_c 0 ne{/Cyan}if
- AGMIMG_m 0 ne{/Magenta}if
- AGMIMG_y 0 ne{/Yellow}if
- AGMIMG_k 0 ne{/Black}if
- ]/DeviceCMYK{}]setcolorspace
- AGMIMG_c 0 ne{AGMIMG_c}if
- AGMIMG_m 0 ne{AGMIMG_m}if
- AGMIMG_y 0 ne{AGMIMG_y}if
- AGMIMG_k 0 ne{AGMIMG_k}if
- setcolor
- }{
- /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
- [/Indexed
- [
- /DeviceN[
- AGMIMG_c 0 ne{/Cyan}if
- AGMIMG_m 0 ne{/Magenta}if
- AGMIMG_y 0 ne{/Yellow}if
- AGMIMG_k 0 ne{/Black}if
- ]
- /DeviceCMYK{
- AGMIMG_k 0 eq{0}if
- AGMIMG_y 0 eq{0 exch}if
- AGMIMG_m 0 eq{0 3 1 roll}if
- AGMIMG_c 0 eq{0 4 1 roll}if
- }
- ]
- 255
- {
- 255 div
- mark exch
- dup dup dup
- AGMIMG_k 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_y 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_m 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- AGMIMG_c 0 ne{
- /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
- counttomark 1 roll
- }{
- pop
- }ifelse
- counttomark 1 add -1 roll pop
- }
- ]setcolorspace
- }ifelse
- imageormask_sys
- }{
- write_image_file{
- currentcmykcolor
- 0 ne{
- [/Separation/Black/DeviceGray{}]setcolorspace
- gsave
- /Black
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Yellow/DeviceGray{}]setcolorspace
- gsave
- /Yellow
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Magenta/DeviceGray{}]setcolorspace
- gsave
- /Magenta
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- 0 ne{
- [/Separation/Cyan/DeviceGray{}]setcolorspace
- gsave
- /Cyan
- [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
- cvx modify_halftone_xfer
- Operator currentdict read_image_file
- grestore
- }if
- close_image_file
- }{
- imageormask
- }ifelse
- }ifelse
- }ifelse
-}def
-/indexed_imageormask
-{
- begin
- AGMIMG_init_common
- save mark
- currentdict
- AGMCORE_host_sep{
- Operator/knockout eq{
- /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
- /CSA get get_csa_by_name
- }{
- /Names get
- }ifelse
- overprint_plate not{
- knockout_unitsq
- }if
- }{
- Indexed_DeviceN{
- /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
- indexed_image_lev2_sep
- }{
- currentoverprint not{
- knockout_unitsq
- }if
- currentdict consumeimagedata
- }ifelse
- }{
- AGMCORE_is_cmyk_sep{
- Operator/imagemask eq{
- imageormask_sys
- }{
- level2{
- indexed_image_lev2_sep
- }{
- indexed_image_lev1_sep
- }ifelse
- }ifelse
- }{
- currentoverprint not{
- knockout_unitsq
- }if
- currentdict consumeimagedata
- }ifelse
- }ifelse
- }ifelse
- }{
- level2{
- Indexed_DeviceN{
- /indexed_colorspace_dict AGMCORE_gget begin
- }{
- /indexed_colorspace_dict AGMCORE_gget dup null ne
- {
- begin
- currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
- get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
- AGMCORE_in_rip_sep and{
- [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
- setcolorspace
- }if
- end
- }
- {pop}ifelse
- }ifelse
- imageormask
- Indexed_DeviceN{
- end
- }if
- }{
- Operator/imagemask eq{
- imageormask
- }{
- indexed_imageormask_lev1
- }ifelse
- }ifelse
- }ifelse
- cleartomark restore
- currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
- end
-}def
-/indexed_image_lev2_sep
-{
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- Indexed_DeviceN not{
- currentcolorspace
- dup 1/DeviceGray put
- dup 3
- currentcolorspace 2 get 1 add string
- 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
- {
- dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
- }for
- put setcolorspace
- }if
- currentdict
- Operator/imagemask eq{
- AGMIMG_&imagemask
- }{
- use_mask{
- process_mask AGMIMG_&image
- }{
- AGMIMG_&image
- }ifelse
- }ifelse
- end end
-}def
- /OPIimage
- {
- dup type/dicttype ne{
- 10 dict begin
- /DataSource xdf
- /ImageMatrix xdf
- /BitsPerComponent xdf
- /Height xdf
- /Width xdf
- /ImageType 1 def
- /Decode[0 1 def]
- currentdict
- end
- }if
- dup begin
- /NComponents 1 cdndf
- /MultipleDataSources false cdndf
- /SkipImageProc{false}cdndf
- /Decode[
- 0
- currentcolorspace 0 get/Indexed eq{
- 2 BitsPerComponent exp 1 sub
- }{
- 1
- }ifelse
- ]cdndf
- /Operator/image cdndf
- end
- /sep_colorspace_dict AGMCORE_gget null eq{
- imageormask
- }{
- gsave
- dup begin invert_image_samples end
- sep_imageormask
- grestore
- }ifelse
- }def
-/cachemask_level2
-{
- 3 dict begin
- /LZWEncode filter/WriteFilter xdf
- /readBuffer 256 string def
- /ReadFilter
- currentfile
- 0(%EndMask)/SubFileDecode filter
- /ASCII85Decode filter
- /RunLengthDecode filter
- def
- {
- ReadFilter readBuffer readstring exch
- WriteFilter exch writestring
- not{exit}if
- }loop
- WriteFilter closefile
- end
-}def
-/spot_alias
-{
- /mapto_sep_imageormask
- {
- dup type/dicttype ne{
- 12 dict begin
- /ImageType 1 def
- /DataSource xdf
- /ImageMatrix xdf
- /BitsPerComponent xdf
- /Height xdf
- /Width xdf
- /MultipleDataSources false def
- }{
- begin
- }ifelse
- /Decode[/customcolor_tint AGMCORE_gget 0]def
- /Operator/image def
- /SkipImageProc{false}def
- currentdict
- end
- sep_imageormask
- }bdf
- /customcolorimage
- {
- Adobe_AGM_Image/AGMIMG_colorAry xddf
- /customcolor_tint AGMCORE_gget
- <<
- /Name AGMIMG_colorAry 4 get
- /CSA[/DeviceCMYK]
- /TintMethod/Subtractive
- /TintProc null
- /MappedCSA null
- /NComponents 4
- /Components[AGMIMG_colorAry aload pop pop]
- >>
- setsepcolorspace
- mapto_sep_imageormask
- }ndf
- Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
- /customcolorimage
- {
- Adobe_AGM_Image/AGMIMG_override false put
- current_spot_alias{dup 4 get map_alias}{false}ifelse
- {
- false set_spot_alias
- /customcolor_tint AGMCORE_gget exch setsepcolorspace
- pop
- mapto_sep_imageormask
- true set_spot_alias
- }{
- //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
- }ifelse
- }bdf
-}def
-/snap_to_device
-{
- 6 dict begin
- matrix currentmatrix
- dup 0 get 0 eq 1 index 3 get 0 eq and
- 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
- {
- 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
- 0 0 transform
- AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
- AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
- itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
- 1 1 transform
- AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
- AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
- itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
- [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
- }{
- }ifelse
- end
-}def
-level2 not{
- /colorbuf
- {
- 0 1 2 index length 1 sub{
- dup 2 index exch get
- 255 exch sub
- 2 index
- 3 1 roll
- put
- }for
- }def
- /tint_image_to_color
- {
- begin
- Width Height BitsPerComponent ImageMatrix
- /DataSource load
- end
- Adobe_AGM_Image begin
- /AGMIMG_mbuf 0 string def
- /AGMIMG_ybuf 0 string def
- /AGMIMG_kbuf 0 string def
- {
- colorbuf dup length AGMIMG_mbuf length ne
- {
- dup length dup dup
- /AGMIMG_mbuf exch string def
- /AGMIMG_ybuf exch string def
- /AGMIMG_kbuf exch string def
- }if
- dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
- }
- addprocs
- {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
- end
- }def
- /sep_imageormask_lev1
- {
- begin
- MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
- {
- 255 mul round cvi GrayLookup exch get
- }currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- /sep_colorspace_dict AGMCORE_gget/Components known{
- MappedCSA 0 get/DeviceCMYK eq{
- Components aload pop
- }{
- 0 0 0 Components aload pop 1 exch sub
- }ifelse
- Adobe_AGM_Image/AGMIMG_k xddf
- Adobe_AGM_Image/AGMIMG_y xddf
- Adobe_AGM_Image/AGMIMG_m xddf
- Adobe_AGM_Image/AGMIMG_c xddf
- AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
- {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- currentcolortransfer
- {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
- {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }ifelse
- }{
- MappedCSA 0 get/DeviceGray eq{
- {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
- currentdict imageormask
- }{
- MappedCSA 0 get/DeviceCMYK eq{
- currentcolortransfer
- {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }{
- currentcolortransfer
- {pop 1}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
- {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
- setcolortransfer
- currentdict tint_image_to_color
- }ifelse
- }ifelse
- }ifelse
- }ifelse
- end
- }def
- /sep_image_lev1_sep
- {
- begin
- /sep_colorspace_dict AGMCORE_gget/Components known{
- Components aload pop
- Adobe_AGM_Image/AGMIMG_k xddf
- Adobe_AGM_Image/AGMIMG_y xddf
- Adobe_AGM_Image/AGMIMG_m xddf
- Adobe_AGM_Image/AGMIMG_c xddf
- {AGMIMG_c mul 1 exch sub}
- {AGMIMG_m mul 1 exch sub}
- {AGMIMG_y mul 1 exch sub}
- {AGMIMG_k mul 1 exch sub}
- }{
- {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
- {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
- }ifelse
- AGMCORE_get_ink_data currenttransfer addprocs settransfer
- currentdict imageormask_sys
- end
- }def
- /indexed_imageormask_lev1
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- currentdict
- MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
- {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
- imageormask
- }{
- MappedCSA 0 get/DeviceGray eq{
- {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
- imageormask
- }{
- MappedCSA 0 get/DeviceCMYK eq{
- currentcolortransfer
- {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
- setcolortransfer
- tint_image_to_color
- }{
- currentcolortransfer
- {pop 1}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
- {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
- setcolortransfer
- tint_image_to_color
- }ifelse
- }ifelse
- }ifelse
- end end
- }def
- /indexed_image_lev1_sep
- {
- /indexed_colorspace_dict AGMCORE_gget begin
- begin
- {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
- {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
- AGMCORE_get_ink_data currenttransfer addprocs settransfer
- currentdict imageormask_sys
- end end
- }def
-}if
-end
-systemdict/setpacking known
-{setpacking}if
-%%EndResource
-currentdict Adobe_AGM_Utils eq {end} if
-%%EndProlog
-%%BeginSetup
-Adobe_AGM_Utils begin
-2 2010 Adobe_AGM_Core/ds gx
-Adobe_CoolType_Core/ds get exec
-Adobe_AGM_Image/ds gx
-[/NamespacePush pdfmark_5
-[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
-[{Doc_Metadata} 1012 (% &end XMP packet& %) ReadBypdfmark_5_string
-<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
-<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-20:48:00 ">
- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
- <rdf:Description rdf:about=""
- xmlns:xmp="http://ns.adobe.com/xap/1.0/"
- xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
- xmp:CreateDate="2008-06-09T10:46:35Z"
- xmp:CreatorTool="The AcroTeX eDucation Bundle"
- xmp:ModifyDate="2008-06-09T10:46:37-05:00"
- pdf:Producer="Acrobat Distiller 9.0.0 (Windows)"
- pdf:Keywords=""
- dc:format="application/pdf"
- xmpMM:DocumentID="uuid:dcf7acdd-9b4c-4257-b0a5-49739103152f"
- xmpMM:InstanceID="uuid:6e082312-9873-4e36-88d5-0fa980573a08">
- <dc:creator>
- <rdf:Seq>
- <rdf:li/>
- </rdf:Seq>
- </dc:creator>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
- </rdf:Description>
- </rdf:RDF>
-</x:xmpmeta>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-<?xpacket end='w'?>
-
-
-% &end XMP packet& %
-
-[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
-[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
-[/NamespacePop pdfmark_5
-currentdict Adobe_AGM_Utils eq {end} if
-%%EndSetup
-%%Page: 1 1
-%%EndPageComments
-%%BeginPageSetup
-Adobe_AGM_Utils begin
-Adobe_AGM_Core/ps gx
-Adobe_AGM_Core/capture_mysetup gx
-Adobe_AGM_Utils/capture_cpd gx
-Adobe_CoolType_Core/ps get exec
-Adobe_AGM_Image/ps gx
-Adobe_AGM_Core/ps gx
-gsave
-/0
-[/DeviceRGB] /CSA add_res
-grestore
-Adobe_AGM_Core/pt gx
-%%EndPageSetup
-1 -1 scale 0 -150 translate
-pgsv
-[1 0 0 1 0 0 ]ct
-gsave
-np
-gsave
-0 0 mo
-0 150 li
-186 150 li
-186 0 li
-cp
-clp
-[1 0 0 1 0 0 ]ct
-150 lw
-0 lc
-0 lj
-10 ml
-[] 0 dsh
-false sadj
-8e-6 75 mo
-186 75 li
-false sop
-.98039 .92157 .72941 rgb
-@
-1 0 0 rgb
-%ADOBeginSubsetFont: PBAAAA+AGaramond-Bold Initial
-%ADOt1write: (1.0.24)
-13 dict dup begin
-/FontType 1 def
-/FontName /PBAAAA+AGaramond-Bold def
-/FontInfo 8 dict dup begin
-/Notice (Copyright (c) 1989, 1992, 1996 Adobe Systems Incorporated. All Rights Reserved.Adobe Garamond is a trademark of Adobe Systems Incorporated.) def
-/Weight (Bold) def
-/ItalicAngle 0 def
-/BaseFontName (AGaramond-Bold) def
-/WasEmbedded true def
-end def
-/PaintType 0 def
-/FontMatrix [0.001 0 0 0.001 0 0] def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 65 /A put
-dup 70 /F put
-dup 76 /L put
-dup 88 /X put
-dup 99 /c put
-dup 101 /e put
-dup 111 /o put
-dup 114 /r put
-def
-/UniqueID 42792 def
-/FontBBox {-158 -269 1147 862} def
-end
-systemdict begin
-dup /Private
-14 dict dup begin
-/|- {def} def
-/| {put} def
-/BlueValues [-16 -0 660 676 400 414 626 640 715 715] def
-/OtherBlues [240 247 -269 -255] def
-/FamilyBlues [-16 -0 660 676 394 408 626 640 715 715] def
-/BlueScale 0.0479583 def
-/StdHW [53] def
-/StdVW [130] def
-/StemSnapV [130 143] def
-/ForceBold true def
-/password 5839 def
-/MinFeature {16 16} def
-/OtherSubrs[{}{}{}{systemdict/internaldict known not{pop 3}{1183615869
-systemdict/internaldict get exec dup/startlock known{/startlock get exec}{dup
-/strtlck known{/strtlck get exec}{pop 3}ifelse}ifelse}ifelse}executeonly]def
-/Subrs 5 array
-dup 0 <1C60D8A8CC31FE2BF6E07AA3E541E2> |
-dup 1 <1C60D8A8C9C3D06D9E> |
-dup 2 <1C60D8A8C9C202D79A> |
-dup 3 <1C60D8A849> |
-dup 4 <1C60D8A8CC3674F41144B13B77> |
-def
-put
-dup /CharStrings
-9 dict dup begin
-/A <1C60D8A8C9B6655377F55DD3C734EE632665B298A6B78FF364EB5A19E433
-08A23641367E58C1ED142CFAD28A8B24C3FAB860388EDF4D1D6AA7F74C5DE3A0
-888018D277BEE8A9EAD59CCC84A313F61EE84C049058C0D0F23B177D09CEF16E
-2A16C69D2AEE1C70629AA291E2EC488825097BC72246693EC07CBD9F7A8783A6
-AF25AC6C6E2921803B133E26A26243B799379830A32B100FCB9B5974B13646B5
-223309EF30719C34A914EE7088D846FBE557000602D14CEF3692F404D0A66FA7
-7C0960553B99E6D4F074C95163875A3E9EAEB4EC0B93A0AA9A1BBE8F75A5EC6A
-A1B7BE29A1D0131F9572A486F2E0939334510D5917C43E07017DBB869F097AB9
-0104AE623A1D6E8448698F4EB22B491858147D69FD3BEF97B03A51EBAE37211D
-A62412616035DF21CA79F13C4F> |-
-/F <1C60D8A8C9B797473FFA53E477313E10F50BF5C3C426109D60C5D22BFCA0
-ADB3C03621BF16F9E9A29D0239303826711D714004B6199870489FDB427E0D83
-7236F0A56326E282E7B1D1CCBD3C42F22897732FDD9815B0BC928BA939A27D8F
-BF1E0253A392153CF0CCC8BB041962F4A1BD240195F6BD361C80FC0C124DA8F2
-86A8E1DCB07AEE55F24FBA9B324059B5B881377C2B6694302FA20973D5937A66
-DFDD6E3BCFBEA4D5ED84EB1864C3127E6CCDDDD68C5D2315E194A295ED025924
-665B35C18EF62C2579B7D922AE132C0B4128970BF2EB5FEE17F56B61B26F2D4B
-1F56405E62039168B080E46D08E4D2EABA47B0FA27355DF4E7A8AA90B18BA910
-8067968CC9938ADED760EBFBB723671936E386D2FDEB13953E3865B3B90BF5CA
-56702261BAB3900C600B409B243373F41F345BDFFE69AECE6EBA47BD8E4EC3EE
-9A755F5F0FC51201C65AABAA3D623F249FD1F8EADC055CA7B42C23328BE5B8C8
-A9AA0399AF01CD5B07D54F368924D957CB87A8FD23BC71A7CCDAC9AE23CE9DCE
-1D5B72F1D6D5D24A12D5C9E696F45414297D417FBFA7936B09F695594EBBD608
-E08A9CBAE08D0370> |-
-/L <1C60D8A8C9B7F2A78FB91FEC0AB1E70F60008564059437FB5A80C4C3A1A6
-72D1EED6F19B026C02D2F4590422303378E71150D7C9E5427C28F992D7C27A32
-FA389DCD93B2FD99D81EC2ABF2BD0AC60EC421184679098DCEC5A4AD222EA8ED
-D3607F288DD9A618B7BE19074A2D520A9A5C3ACBCC2FA7B86F916B00201EEBB1
-7911DD5181EFE2A0F81BB72AAB67717D530BD33A2B93A28944C46A376663CC44
-1E8DA79233950D8594FA48667A3AC379766FE39AD438D3FDC9858B678E609AE5
-A41BF446FD80E08BAF7B233E9527E5F4218FAF091146C1F0D8FC3A30A5EFFC4C
-75740C6487C2FF5E66AB94B7530CEA> |-
-/X <1C60D8A8C9B64C38AD99E8223C0B9A93D821D7A7EC037F50529290949BF1
-D40520646BE75AC36DDDE2799793545853190D8B3CF8A886D21E673C29585216
-9853B08D7DE38F77E554BDC1C115E7A7A28A2C3B73B2896283F45F29E54C1936
-8EF2B5153DEC202D0D7A1B3AA0FCC9368FAE5F6340D642623C05DBA81CF96F21
-0350D7AE6976B7B259661BA3224C12E1E041B17E91DBEF6061165FB76A0EF910
-BCAA01839CF96B4DAA0537B3139F3DCC4E27292979BD393F4AEAD0E87C134175
-95AEB8D77580D2EB9734C1545E3777802E2DD604B644333DFF5E3E45C0E9699A
-28456803232177C4AD32CD74A7C3ED88AF964528A6481A29D747C0A1F0AEF7BD
-6224B61D4998C59B1DAF6CE2F7B0CC11CCAA2CB3F0CBD5C4BDF2C6A7757C32C1
-5ED58490B81133E29403BA1D1A4143E54E1DBB070424226C887811BF763F3029
-0A171F9EC3CC19FF8C726DBED83C8D9F47F876D9609E47DB89F2AC7075F4F452
-E5151235DC29F8C4EFD41C0DF74854AD15FDF0EA46A58AD037FD4DEA6CB0932A
-82E552EEF87777D36C300401D8708F690FB8D413B3BE48D62B94AB90372F367A
-30EBCB47B813314E64E5D0730724DDCA08C83BDD1D7993A1669A5212035C> |-
-/c <1C60D8A8C9B71B403A818C3DF4826E1F45CF4EECE6D7D5AFE3BA0007DE7F
-590734D8CA8997F38C8376C5732929B352E785C51A99B8BA68412FAF281BAB53
-2A18189AEC120AC2F0D76432FB4DA510C10CA9BC537342C3EFED625E4A8313F4
-5AB64917206116EB275D6F> |-
-/e <1C60D8A8C9B7171E0E8A38F06EFB5650A378BD33F88451C83C722AF24588
-2E39BB877C5ED5AAB96BB4371C80A25530DA3017C22D46EE85E79EC4D12711A4
-31A95533FFCA59766087C1ABD510709349A5E354AFC1CB8AF80B14E0953EC9C7
-DAD2D34949C1A71787B530C6EA79398AD4C7C76CB7A2FA6ACA7207AC89> |-
-/o <1C60D8A8C9B7B71AC6E947C0F92A6892BA71854D190FDE2F840A4F9C319C
-61A64E30AEAFF817D1D81C7E802E4C28E67A00727F4B13EFC195011A8A709D78
-5C15ACAB3938932F09CF329C9A687AC2902EB3B126C2C4E27EEA> |-
-/r <1C60D8A8C9B728C5DB8274F71B9523FEA7BE2412DC50C4BC77147040DF6F
-18B5387CC9A3C04A0DC1E33CA81D41BDF8CA9E85570DA0B8D95099E92636EEF5
-F33A867301F8B8627F52D835EA1A457BF5C9E5C19BBE664ECCA543EA5805A1FD
-2368F67B106CF0B2AE65AF7DDB69A845EE8812A9760CFDF2EEF319FE4E1BCCD1
-0337EBEC0AD8229B09BC80D059F20B7E3CC9404B13C454CCC7618F6EF3F49242
-220284FD980A9D77A79D6354D07FD59B656047389F371C1B68C3FC4BE3D172D3
-FD90B9577E2F7241B00EE02DA2CEDDE6D69701377D75CBEF> |-
-/.notdef <1C60D8A8C9B8666C32> |-
-end put
-end
-dup /FontName get exch definefont pop
-end
-%ADOEndSubsetFont
-/DYMKXI+AGaramond-Bold /PBAAAA+AGaramond-Bold findfont ct_VMDictPut
-/DYMKXI+AGaramond-Bold*1
-[65{/.notdef}rp /A 4{/.notdef}rp /F 5{/.notdef}rp /L 11{/.notdef}rp /X
-10{/.notdef}rp /c /.notdef /e 9{/.notdef}rp /o 2{/.notdef}rp /r
-141{/.notdef}rp]
-DYMKXI+AGaramond-Bold nf
-DYMKXI+AGaramond-Bold*1 [20 0 0 -20 0 0 ]msf
-57.5871 51.7676 mo
-(AcroF)
-[12.3599 8.32001 7.30004 10.3201 0 ]xsh
-103.515 55.7976 mo
-(L)sh
-109.215 51.7676 mo
-(eX)
-[5.89996 0 ]xsh
-0 0 1 rgb
-%ADOBeginSubsetFont: PBAAAA+AGaramond-Bold AddGlyphs
-%ADOt1write: (1.0.24)
-systemdict begin
-DYMKXI+AGaramond-Bold dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/G <1C60D8A8C9B61332955D57ADE2128E92F5BA25BFC66B9671A7D0C0989F22
-390CE3FA08216182862A271EF35B49C0826C266DFD0A355DB6BA449076E3ED4F
-E3A09EC27F8497792F5495DC538E61CC60B0A728A04839904FD9B14D6EA75300
-829BD12F41BC5B50D0C4311F448AC4B09C112FA931BB71D66CA388BCE25EF7A7
-C285A2B8B9482B55F7BAB7D6E5FAF75724D60DA09342C7C407DC82054FDCC2FE
-749A66E0C44EDC290FCCBE802E9A274AB56738638810DB485ACA35298DB8D3C7
-90B4ED8A551BE76A52F230E00E8C4D5CE50B4B2914F8C2C0ED58437F518D2009
-D74E69A2B99871C1094D9A41C46525B19F783469C54D1AA446A8DA5218734B06
-0CD3D7F9B1656047BABA870A2F40EB61D8AA56DCB64422352EF4E93464063E18
-F56E8B8925DF9B38C3269D34BF> |-
-/a <1C60D8A8C9B760FD31B88B3EBC39647A0287B9946E5CC772F4B9508E6831
-A77E239C1A2AF45082C758F785406B498A09CE1CD8208C090F0EA4503B257559
-B34AADF5AF462A87ED8D65E015C7874CB097222BB9CC725188346AE56253BFAC
-9D02A85A0174872D2D8153D09A0141B285B311E4FFAFC20663C575A094842AC4
-3AB7F5A91489ABDDE684A2A25852100B9E8E36AB428D5A00CBF1DB10026234D8
-5271E1A5E1E0C781A8B64323CFE9BD55A97544DB630E14B25328573EDFEED2C7
-E077E2B97BD60516D5C15496D181D876DECF9673EA8D88E873C17AC415021A27
-8B893A1359134B41669BF6BC4392459E27815A86239C99F4E98AF386187A75E5
-D537DE82780A7095373A2279FF3659> |-
-/g <1C60D8A8C9B75CBB5010E213CE6CB9D65A0E04CF79C5CFCDDD48F782BE1F
-E3612A82BB63E540E6FF8663326AF45B46067A9468D20C0116514D54E954A7C2
-449589D732D47DD8082FDF0C03584C30CF444D32ACF58F0F552EB0C341AB4D97
-1B421587C767F52D9F0C187121AD3506AFEB7D876492DB0E7334E313313AE243
-A3F816555EF4E486F63B272D0BA54070920663B4DEFC06CC175F60309D710433
-FD125D89FAE80DEC6F628BD513112FCF4B3728FB82CEB32EADB9820E3980C814
-035E5D3A8B35ADF35C010D51342985B52B400387E962FBBA082CA5E94663738C
-938EF976EA32A044CB6CCE498ABB3553D77BB7F634811502930492104BD8C874
-3635935631DC93A2F3D2097D77A4DCD4A8271670B3B0E500AD72583E4A7BEFC5
-701BE253B235348F606D75ACD43E79DD437FFC084D0E087CE74703D363E27C44
-686E2B1567732D9B98B6A4D0894F8E184EA5CDD92550669CBC8C4F050100053B
-1D10D8755DC7DEDAABEEDDC26AB3A3D119D77D27> |-
-/h <1C60D8A8C9B79815885BCF3A1C586BB8D743FF3D8932B19A53E73B274B8B
-AEE3D8DC6DB5ADE289A21ECD9A00EDC30540DF7E5804E50C841D1F1882535A32
-DD609E70F2817CE3FC9CBEF669E0CD62BBCD235A3080E381D8301CF26296C871
-C24EBC5AB59D43748CA1E5C465277271F41466DA67AC7F996A48C219680E7F02
-2F4ED846D7A75B94FBA1D98C2E8E600DC37825CA500AC5F48CB35151E5BF236A
-229CF1BFD85EA1E2A67EFA9268574275F1BB989C2FF8F09BA10E642BFAF13AC7
-E264A521BB0A7786A4106BF3D4AE3572601F27CE6D8CC8296145808A97A29A56
-BF440B51F1407CF75E85BCF488FF80A8C013EC4F9642F91DE82C16B53B4DCBF5
-D868776E1C8EF06C93C370B4E71B1AEE6781EA11081FB5FE9624DEBDEDE8FC78
-72689D539483DE41266646C339270B7337BA571BE0DB164011E9F39296> |-
-/i <1C60D8A8C9B84C670D1B82727EF32637044703D1099AB39E10C336B4FB6B
-AE6E6C86CFA77FEA15789E8ABE1323397171E81B9AFE910942F8BEC5B9AD77C2
-B4F4AC6E6D5E59A5E71BAC69620C645C28351A65D4626FF9CF83007A77192826
-7D04A528F682478B3394442D67F1FB0F4BD4D8A10DF45D96156A19EC352A7EFF
-0C127890596C94B718F54D67B3C2527EE581F606C8A974A1338F97880BBF3456
-087F6DD698DE01FB2899732F09AB79370618C9E9A4431028FA8012F1ACB4ECFD
-68FD09947B97730C8862E65C2E9F2B796E16FF6F112A180855EFD698164A45BF
-F6> |-
-/n <1C60D8A8C9B795A0CE292F17261D112E0E3D715AD602AFC3F68C4B4501DD
-082CC52463961AFB980C0BF581166729BCF61B90905F566F01025BC78C18C806
-14B967CE96AD7C11F4CD97FC2B4357B9BE6374DA7B7ADA7B13E8014295BE856A
-39DBBC85EFBCF83D3547F5C415D75143813E0471BC15C0644B762EEC68C30B7C
-1A3BB5659EA4E022D94E7CEDA28F5AEA3CBD9065D2112ACE68B7312F3DC40C20
-D906290820BF61B880491D204189A1E7E7561FA2361D538C87E20229AA34C2D2
-786000774B1707398BAB32C26EB53452669A37751331547B82079B604134B168
-AB731B13D6BD22E212896D8CC3771F67E604361988F51E7723EE04F8F47964C3
-B801192B838D73CF0C5E34E97DB6A49E2B14CE0ECF00B0B2275B5AE4597BE6F2
-408F2C5B12D81DEFE986CA593C66BA61A482> |-
-/p <1C60D8A8C9B79C5FED6C0F0DDDA6319F1AAF52DAF53F728156D3EC8CAF36
-1A29D17ECC16ADC2E6AB315E1FDCB815C360844596AE1D41E27CBB3A25D8BB57
-FE09DEC308863553A977413877330B42637E4E528556009AE15CDDDB67C6F877
-519D4919BA009EC3C64D54E07E78270FA9536F54709A76E963E287A2CFE9595A
-8793E3EB17B9583E37D6402AECBC25F03BBB365E3CE3D68BE6429BC7301F6B5B
-B8EAA7E989068D4C9F66124F22CD4012A5A342E3CA82C820766E68899FF2BB02
-B7BDAFACB1254F308965DE871249B70A2925900D31854421D9B5160BB9851F1F
-3C02B9DCA502919799BD9CC1E5496A05374B1465AFE67EABA621BD7CD3499784
-67179D3001F4BDFEC6855A3338543EF96BEC6FAC319096657E953B81ED6A76CC
-37CD307C352A9860852D6B51F7B9AA9E> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-DYMKXI+AGaramond-Bold /Encoding get
-dup 71 /G put
-dup 97 /a put
-dup 103 /g put
-dup 104 /h put
-dup 105 /i put
-dup 110 /n put
-dup 112 /p put
-pop
-%ADOEndSubsetFont
-/DYMKXI+AGaramond-Bold*1
-[65{/.notdef}rp /A 4{/.notdef}rp /F /G 4{/.notdef}rp /L 11{/.notdef}rp
-/X 8{/.notdef}rp /a /.notdef /c /.notdef /e /.notdef
-/g /h /i 4{/.notdef}rp /n /o /p /.notdef
-/r 141{/.notdef}rp]
-DYMKXI+AGaramond-Bold nf
-DYMKXI+AGaramond-Bold*1 [20 0 0 -20 0 0 ]msf
-53.7111 83.0496 mo
-(Graphing)
-[14.1999 7.42004 8.85986 10.86 10.9399 5.71991 11.0001 0 ]xsh
-.137422 .122799 .126081 rgb
-%ADOBeginSubsetFont: PBAAAA+AGaramond-Bold AddGlyphs
-%ADOt1write: (1.0.24)
-systemdict begin
-DYMKXI+AGaramond-Bold dup
-/Private get dup rcheck
-{begin true}{pop false}ifelse exch
-/CharStrings get begin
-systemdict /gcheck known {currentglobal currentdict gcheck setglobal} if
-/period <1C60D8A8C9B8666C4126EF39EAAD870163BC6E0A685D8DFB65EC8E1
-4751696A1FA1256DD2B28A8D4B11B> |-
-/D <1C60D8A8C9B6CC61ECFA600FD7EAC88B684706E11436B4F56500C772BF7D
-B6E5DA7D261672C80EC451495133D15DB5ED65DB077EF24A257F68C944D48E62
-05CDF6A4EBB3CC0BFB661CC960477F5973544BB9DA066EAA4703C8060D715472
-1F19CB93FF81726E1E797FC341ECD27E70BADF10A8E3E1D161091C04C08FCDA3
-D4C0FB7789D6BC4743587ED10033C808B48148707A6366E2B903557C92042E80
-E78C3550ECA75896A49868F19B4D244695974AA8D7D4CFBAEEAE973276A3F939
-6C908F34376C3FD2A2A0C8BC5083A7DDEE9CA69251C65636F1FA399348432945
-EE0431DBAE748D505732207F2A2995AE193606F03ACC829B7E56BD51E00F62> |-
-/P <1C60D8A8C9B7C2FB443727177F0B040011071E8BE2EF927647B2219C190D
-5C19CACC673C693F4C41C347BFC1CEC04647E5B5731BF15EE115DB8B58185D77
-EC501ABE71C0952ABB68B5604C3AAA01BEDD3421ABDC547FD8F7D633A0DDE399
-5AA04D999D01E52045ADE3FE7415F39D784308A23F6BFB1A2709584C8C15943D
-B8B7FB4305694C2B50A54C1C794DD0F2294BF454B4A0AB2F5CCC517DF5D75D76
-CBDAE949D802C0B204D2FBAF538B31E8CCC2B915817D01206A1BA9476FD0F72E> |-
-/S <1C60D8A8C9B7A157DDD65E2D6E12EC4D29CCC558B9108AFEF527FF151C11
-542D754791DEC089770797EA43AA0A17389D01F94E62265ED32A176828C3AD24
-39C25706F52598126A3BC30823B311DF27B862E870829EF46A3FFB0ABA414799
-0D10096650D3EA773866ECD8F321BD1427A8CD97D24C672F5F92AD13BAEAAD86
-68326C737AFBBFE93FA770F72DA1BC158949F9BB71F78143> |-
-/t <1C60D8A8C9B8293CC14C0716D97838C5907536CD72965E4133CE6BF69240
-E0F97FC614D5C145665C1B21D826CD95C7C948414B9413D983721B772AEA451C
-8BA24085FF9D67767DF832359F8123BCC3FC2B63A4D7673B9897192027F472C7
-901F495435D5885A25B1D31CA436A82DA6A13540D8F86D370E344C160A3005EC> |-
-/y <1C60D8A8C9B746F4A78DF719F6FD142DD510DF52F278FDB6983C74AA48BF
-E99EE4434D535143C45FAAB4EEFDD7BAECF96E2CDA41D185914A27256BE3F0AE
-4DE4A18F4F8151460AB6DC22A8D90020EA0D7097F7A95AF9AFCD371CD60808C1
-D91F2B06DF675B1D19ECAEE31DADBA173CFDECD6F13866DF108E9E5962DC0453
-1E7FB0C3A161BBDE108FCCAD1E593EAAEC4132E478657B076732A872E7F674ED
-99109BA6EBEB2532EAF21584084662AA3C0921F21C49F28D10808B0B5D4197A9
-DF6AC2AA5AD7AC1A4EB1F9464D0C631411725A8CC820156C222C2446757EA1B8
-7D3C5A647BA188F49DFC46B9ECB8242AA458AC0397DBA766A5F50F9EB24CB02A
-74A22A692DC5F4FD13B6DD8B4F91DF0836178BBA902268E33800DF340844607A
-ECAF7B78237118> |-
-systemdict /gcheck known {setglobal} if end {end} if
-end
-DYMKXI+AGaramond-Bold /Encoding get
-dup 46 /period put
-dup 68 /D put
-dup 80 /P put
-dup 83 /S put
-dup 116 /t put
-dup 121 /y put
-pop
-%ADOEndSubsetFont
-/DYMKXI+AGaramond-Bold*1
-[46{/.notdef}rp /period 18{/.notdef}rp /A 2{/.notdef}rp /D /.notdef /F
-/G 4{/.notdef}rp /L 3{/.notdef}rp /P 2{/.notdef}rp /S 4{/.notdef}rp
-/X 8{/.notdef}rp /a /.notdef /c /.notdef /e /.notdef
-/g /h /i 4{/.notdef}rp /n /o /p /.notdef
-/r /.notdef /t 4{/.notdef}rp /y 134{/.notdef}rp]
-DYMKXI+AGaramond-Bold nf
-DYMKXI+AGaramond-Bold*1 [9.9626 0 0 -9.9626 0 0 ]msf
-70.9179 135.534 mo
-(D.P.Story)
-[7.90034 5.1805 4.19423 5.1805 4.80194 3.2179 5.14077 3.87547 0 ]xsh
-grestore
-grestore
-pgrs
-%%PageTrailer
-[
-[/CSA [/0 ]]
-] del_res
-/DYMKXI+AGaramond-Bold*1 uf
-/DYMKXI+AGaramond-Bold uf
-/PBAAAA+AGaramond-Bold uf
-Adobe_AGM_Image/pt gx
-Adobe_CoolType_Core/pt get exec
-Adobe_AGM_Core/restore_mysetup gx
-Adobe_AGM_Core/pt gx
-currentdict Adobe_AGM_Utils eq {end} if
-%%Trailer
-Adobe_AGM_Utils begin
-[/EMC pdfmark_5
-currentdict Adobe_AGM_Utils eq {end} if
-Adobe_AGM_Image/dt get exec
-Adobe_CoolType_Core/dt get exec
-Adobe_AGM_Core/dt get exec
-%%Pages: 1
-%%DocumentNeededResources:
-%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
-%%+ procset Adobe_CoolType_Utility_T42 1.0 0
-%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
-%%+ procset Adobe_CoolType_Core 2.31 0
-%%+ procset Adobe_AGM_Core 2.0 0
-%%+ procset Adobe_AGM_Utils 1.0 0
-%%DocumentNeededFeatures:
-%%DocumentSuppliedFeatures:
-%%DocumentCustomColors:
-%%CMYKCustomColor:
-%%RGBCustomColor:
-%%EOF
diff --git a/macros/latex/contrib/acroflex/examples/aflogo.tex b/macros/latex/contrib/acroflex/examples/aflogo.tex
deleted file mode 100644
index 3adf52c457..0000000000
--- a/macros/latex/contrib/acroflex/examples/aflogo.tex
+++ /dev/null
@@ -1,42 +0,0 @@
-\documentclass{article}
-\usepackage[usetemplates]{web}
-\usepackage{anyfontsize}
-
-%
-% This is a simple attempt at creating a poster for
-% movies.
-%
-% After creating a PDF document of this source file, bring
-% it up into Acrobat, and do a Save As an EPS file.
-%
-% I don't remember why I chose these dimensions. The
-% aspect ration of this file should approximately match
-% that of the movie, so the text will not get distorted
-% too badly.
-%
-
-\margins{0bp}{0bp}{0bp}{0bp} % left,right,top, bottom
-\screensize{150bp}{186bp} % height, width
-
-\parindent0pt\parskip0pt
-
-\def\fifteenpt{\fontsize{15}{15}\selectfont}
-\def\twentypt{\fontsize{20}{20}\selectfont}
-
-\pagestyle{empty}
-
-\textBgColor{webyellow}
-\def\AcroFLeX{AcroF\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}
-
-\begin{document}
-
-\null\vspace{-\baselineskip}\vfill
-\centering{\bfseries\color{red}\twentypt\AcroFLeX\par\medskip}
-\par\medskip
-{\bfseries\color{blue}\twentypt Graphing}
-\par\vfill
-{\bfseries\fifteenpt\color{black}D. P. Story}
-
-\bigskip
-
-\end{document}
diff --git a/macros/latex/contrib/acroflex/examples/transf_grphs.pdf b/macros/latex/contrib/acroflex/examples/transf_grphs.pdf
deleted file mode 100644
index c6212a84f2..0000000000
--- a/macros/latex/contrib/acroflex/examples/transf_grphs.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/acroflex/examples/transf_grphs.tex b/macros/latex/contrib/acroflex/examples/transf_grphs.tex
deleted file mode 100644
index 74dad7dbee..0000000000
--- a/macros/latex/contrib/acroflex/examples/transf_grphs.tex
+++ /dev/null
@@ -1,296 +0,0 @@
-\documentclass{article}
-\usepackage{amsmath}
-\usepackage[%
- web={pro,tight,usesf},
- eforms,exerquiz,dljslib={ImplMulti},
- graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{acroflex}
-
-\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom
-\screensize{6.8in}{5.5in} % height, width dimensions
-
-\DeclareDocInfo
-{
- title=Exploring Graphical Transformations,
- author=D. P. Story,
- university=Northwest Florida State College,
- email=storyd@owc.edu,
- subject=Demo of the acroflex and the rmannot package,
- keywords={Adobe Acrobat, JavaScript, Adobe FLEX 3, ActionScript},
- talksite=\url{http://faculty.owc.edu/math/storyd},
- talkdate={\today},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL=http://www.acrotex.net
-}
-\talkdateLabel{Published:}
-
-\setWindowOptions{showtitle}
-
-\requiredVersionMsg{%
- Version 9 required: This document may be viewed, but version 9
- of Acrobat/Adobe Reader is required to view the rich media
- annotations present in this document.}
-\requiredVersionMsgRedirect{%
- Version 9 required: This document may be viewed, but version 9
- of Acrobat/Adobe Reader is required to view the rich media
- annotations present in this document.}
-\requiresVersion[warnonly]{9}
-
-\def\AcroTeX{Acro\!\TeX}
-\def\myURL{http://www.math.uakron.edu/\string~dpstory}
-%
-% The following definitions are for the rmannot package.
-% The \saveNamedPath associates the name AcroAd with the
-% path to a Flash animation, Acro_Advertiser.swf.
-% The two \makePoster definitions are for the posters of the
-% rich media annotations. The first for the animation on page 1
-% and the second for all the AcroFlex graphing screens.
-\newcommand{\myRMFiles}{C:/Users/Public/Documents/My TeX Files/%
- tex/latex/aeb/aebpro/rmannot/RMfiles}
-\saveNamedPath{AcroAd}{\myRMFiles/Acro_Advertiser.swf}
-%
-% See the rmannot documentation. You can create your own
-% poster graphic and declare it in the preamble.
-%
-\makePoster[hiresbb]{aflogo}{aflogo1}
-\makePoster[hiresbb]{AcroAd_poster}{AcroAd_poster}
-
-\parindent=0pt
-\pagestyle{empty} %\previewtrue
-\def\graphAndControls{\kern0pt\noindent
- \graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}\\[1ex]
- \makebox[\hScreenGraph][l]{%
- \savedelSelBtn[\textSize{7}\CA{S}]{9bp}{11bp}\kern1bp
- \functionSelect{50bp}{11bp}\hfill
- \funcInputField{\hScreenGraph-50bp-6bp-9bp}{11bp}%
- }\\[1ex]
- \makebox[\hScreenGraph][c]{\scriptsize
- \graphBtn[\textSize{7}]{}{9bp}\kern1pt
- \graphClrBtn[\textSize{7}]{}{9bp}\hfill
- \hShiftL{\raisebox{1bp}{\reflectbox{\ding{220}}}}\,%
- \vShiftU{\raisebox{1bp}{\rotatebox{90}{\ding{220}}}}\,\,%
- \amtShift[\textSize{7}]{12bp}{9bp}\,\,%
- \vShiftD{\raisebox{1bp}{\rotatebox[origin=c]{-90}{\ding{220}}}}
- \hShiftR{\raisebox{1bp}{\ding{220}}}\enspace
- \hfill\zoomInOut[\textSize{7}]{}{9bp}%
- }\\[1pt]%
- \makebox[\hScreenGraph][l]{\scriptsize
- $x = $ \strut\domMin[\textSize{7}]{36bp}{9bp}\ldots
- \domMax[\textSize{7}]{36bp}{9bp}\hfill
- $n = $\numPoints[\textSize{7}]{16bp}{9bp}
- }\\[1pt]%
- \makebox[\hScreenGraph][l]{\scriptsize
- $y = $ \rngMin[\textSize{7}]{36bp}{9bp}\ldots
- \rngMax[\textSize{7}]{36bp}{9bp}%
- }%\\[1pt]%%
-% \makebox[\hScreenGraph][l]{\scriptsize
-% $t = $ \strut\domMinP[\textSize{7}]{36bp}{9bp}\ldots
-% \domMaxP[\textSize{7}]{36bp}{9bp}%
-% }
-\par
-}
-
-%
-% Display an advertisement on the opening page through the
-% \optionalPageMatter command.
-%
-\optionalPageMatter{%
-\begin{center}
-\begin{minipage}{.7\linewidth}
- \resizebox{\linewidth}{!}{%
- \rmAnnot[poster=AcroAd_poster,enabled=pageopen]{612bp}{265bp}{AcroAd}}%
-\end{minipage}
-\end{center}
-}
-
-\begin{document}
-
-\maketitle
-
-
-
-% Basic parameters. These are the graphing screen dimensions you wish
-% for the AcroFleX graphing widget, and the \graphName is the base name used by
-% all the supporting components to the graphing screen.
-
-\dimScreenGraph{160bp}{160bp}
-%\dimScreenGraph{186bp}{186bp*3/4}
-\graphName{graph1}
-
-\begin{center}\bfseries\Large\color{blue}
- Transforming Graphs
-\end{center}
-
-\medskip
-This is a demo of graphical transformations, and is based on my recent work over the summer, 2008,
-on creating a interactive graphing system using a Flash application, written by myself, for PDF.
-Adobe Reader 9.0 or later is required to use this system.
-\medskip
-
-\begin{minipage}[t]{\hScreenGraph + 10bp}
-%
-% Insert the \graphScreen with all possible controls. Plot data entered by the
-% user is interactive mode.
-\graphAndControls
-\end{minipage}\hfill
-\begin{minipage}[t]{\linewidth - \hScreenGraph - 10bp}\small\par
-\textbf{\textcolor{red}{Instructions:}} This graphing system can graph
-a function of $x$.
-\begin{questions}
- \item For a function of $x$, enter an algebraic expression to be graphed, e.g.,
- \verb!x^2!, \verb!x^3!, \verb!3x^2-1!, \verb!|x|!, \verb!sqrt(x)!
- \item Set the graph viewing window: The range of the horizontal
- axis ($x$-axis) and range of the vertical axis ($y$-axis).
- For parametric plotting, set the range of the $t$ variable.
- \item Enter the number of points, $n$, to plot.
- \item Click the \textsf{Graph It!} button.
- \item Shift the viewing window horizontally or vertical;
- or zoom in or out.
- \item Click \texttt{Clear} to clear the plot; use
- \textsf{shift-click} to deactivate the graphing screen.
-\end{questions}
-\end{minipage}
-
-\medskip
-
-\noindent\makebox[\linewidth][c]{\rule{.67\linewidth}{.4pt}}
-
-\medskip
-
-\parskip3pt
-
-\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
- noquotes,points=n_Pts}{newFunc}{\verticalShift}
-\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
- noquotes,points=n_Pts}{newFunc}{\horizontalShift}
-\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
- noquotes,points=n_Pts}{newFunc}{\verticalShrink}
-\defineGraphJS{graph=c2,xInterval={[d_min,d_max]},yInterval={[r_min,r_max]},
- noquotes,points=n_Pts}{newFunc}{\horizontalShrink}
-\def\gatherGraphingData{%
- var f = this.getField("graph1theFunction").value;\r\t
- var d_min = this.getField("graph1theDom.min").value;\r\t
- var d_max = this.getField("graph1theDom.max").value;\r\t
- var r_min = this.getField("graph1theRng.min").value;\r\t
- var r_max = this.getField("graph1theRng.max").value;\r\t
- var n_Pts = this.getField("graph1numNodes").value;\r\t
-}
-
-Explore graphical transformations by entering numbers into the fields below. Put your mouse
-over the fields for additional instructions. Click on the green links to populate the
-graphing screen with suggested examples, then manipulate these examples using the controls below.
-
-\smallskip
-
-\begin{center}
-\begin{tabular}{lll}
-\textbf{Description} & \textbf{Input} & \textbf{Suggested Examples}\\
-
-Vertical Shift & \textField[\textSize{7}\TU{Enter a number (positive
-or negative) to shift the graph vertically up or down.}
- \AA{\AAKeystroke{%
- if (event.willCommit) {\r\t
- \gatherGraphingData
- var _C = event.value;\r\t
- if ( isFinite(_C) ) {\r\t\t
- var newFunc = f+"+"+(_C);\r\t\t
- \verticalShift\r\t
- }\r
- }
-}}]{vShift}{20bp}{9bp}&
-\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-3,3]},points=40}{x}{$x$},
-\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-2,4]},points=40}{x^2}{$x^2$},
-\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-4,4]},points=40}{x^3}{$x^3$},
-\sgraphLink{populate,xInterval={[-2,3]},yInterval={[-3,6]},points=40}{(x-1)^2+1}{$(x-1)^2+1$}\\
-%
-%
-Horizontal Shift & \textField[\textSize{7}\TU{Enter a number
-(positive or negative) to shift the graph horizontally right or
-left.}
- \AA{\AAKeystroke{%
- if (event.willCommit) {\r\t
- \gatherGraphingData
- var _C = event.value;\r\t
- if ( isFinite(_C) ) {\r\t\t
- newFunc = f.replace(/x/g, "(x-("+_C+"))");\r\t\t
- \horizontalShift\r\t
- }\r
- }
-}}]{hShift}{20bp}{9bp}&
-\sgraphLink{populate,xInterval={[-2,4]},yInterval={[-2,2]},points=60}{sqrt(x)}{$\sqrt{x}$},
-\sgraphLink{populate,xInterval={[-3,3]},yInterval={[-3,3]},points=60}{x^{1/3}}{$\sqrt[3]{x}$},
-\sgraphLink{populate,xInterval={[-2,4]},yInterval={[-2,3]},points=60}{sqrt(x-1)+1}{$\sqrt{x-1}+1$}\\
-%
-%
-Vertical Stretch/Shrink& \textField[\textSize{7}\TU{Enter a positive number
-to stretch or shrink the graph vertically.}
- \AA{\AAKeystroke{%
- if (event.willCommit) {\r\t
- var f = this.getField("graph1theFunction").value;\r\t
- var d_min = this.getField("graph1theDom.min").value;\r\t
- var d_max = this.getField("graph1theDom.max").value;\r\t
- var r_min = this.getField("graph1theRng.min").value;\r\t
- var r_max = this.getField("graph1theRng.max").value;\r\t
- var n_Pts = this.getField("graph1numNodes").value;\r\t
- var _C = event.value;\r\t
- if ( isFinite(_C) && (Number(_C) > 0) ) {\r\t\t
- newFunc = String("(_C)*("+f+")")\r\t\t
- \verticalShrink\r\t
- }\r
- }
-}}]{vShrink}{20bp}{9bp}&
-\sgraphLink{populate,xInterval={[-2,2]},yInterval={[-2,4]},points=40}{|x-1|}{$|x|$},
-\sgraphLink{populate,xInterval={[-2,3]},yInterval={[-2,2]},points=40}{|x-1|}{$|x-1|$}\\
-%
-%
-Horizontal Stretch/Shrink& \textField[\textSize{7}\TU{Enter a positive number
-to stretch or shrink the graph horizontally.}
- \AA{\AAKeystroke{%
- if (event.willCommit) {\r\t
- var f = this.getField("graph1theFunction").value;\r\t
- var d_min = this.getField("graph1theDom.min").value;\r\t
- var d_max = this.getField("graph1theDom.max").value;\r\t
- var r_min = this.getField("graph1theRng.min").value;\r\t
- var r_max = this.getField("graph1theRng.max").value;\r\t
- var n_Pts = this.getField("graph1numNodes").value;\r\t
- var _C = event.value;\r\t
- if ( isFinite(_C) && (Number(_C) > 0) ) {\r\t\t
- newFunc=f.replace(/x/g, "(("+_C+")*x)");\r\t\t
- \horizontalShrink\r\t
- }\r
- }
-}}]{hShrink}{20bp}{9bp}&\\
-%
-%
-Reflect w/resp $y$-axis & \pushButton[\textSize{7}\CA{y-Axis}
- \TU{Press to reflect current graph with respect to the y-axis.}
- \A{\JS{%
- var f = this.getField("graph1theFunction").value;\r\t
- var d_min = this.getField("graph1theDom.min").value;\r\t
- var d_max = this.getField("graph1theDom.max").value;\r\t
- var r_min = this.getField("graph1theRng.min").value;\r\t
- var r_max = this.getField("graph1theRng.max").value;\r\t
- var n_Pts = this.getField("graph1numNodes").value;\r\t
- newFunc=f.replace(/x/g, "((-1)*x)");\r\t\t
- \horizontalShrink\r\t
-}}]{y_reflect}{}{9bp}&
-Click \graphClrBtn[\textSize{7}]{}{9bp} before clicking on green links\\
-%
-%
-Reflect w/resp $x$-axis & \pushButton[\textSize{7}\CA{x-Axis}
- \TU{Press to reflect current graph with respect to the x-axis.}
- \A{\JS{%
- var f = this.getField("graph1theFunction").value;\r\t
- var d_min = this.getField("graph1theDom.min").value;\r\t
- var d_max = this.getField("graph1theDom.max").value;\r\t
- var r_min = this.getField("graph1theRng.min").value;\r\t
- var r_max = this.getField("graph1theRng.max").value;\r\t
- var n_Pts = this.getField("graph1numNodes").value;\r\t
- newFunc = String("(-1)*("+f+")")\r\t\t
- \verticalShrink\r\t
-}}]{x_reflect}{}{9bp}&
-\end{tabular}
-\end{center}
-\end{document}
diff --git a/macros/latex/contrib/acroflex/swf/AcroFleX.swf b/macros/latex/contrib/acroflex/swf/AcroFleX.swf
deleted file mode 100644
index d13cc494b1..0000000000
--- a/macros/latex/contrib/acroflex/swf/AcroFleX.swf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/README.md b/macros/latex/contrib/datepicker-pro/README.md
deleted file mode 100644
index 2492c46595..0000000000
--- a/macros/latex/contrib/datepicker-pro/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-The datepicker-pro Package
-Author: D. P. Story
-Dated: 2018-07-02
-
-One of the (many) deficiencies of Adobe Acrobat Reader/Adobe Acrobat is that
-they have never supported a proper date picker. This package now supplies
-one. The \datepicker command creates a readonly text field and a push button
-to its right. Pressing on the pushbutton brings forth a SWF file displaying a
-calendar. The user then chooses a date from the calendar, the the date is
-transferred to the text field.
-
-This is a "pro" application, which, in the jargon of AeB, means that Adobe
-Distiller is required as the PDF creator. The only drivers supported, as a
-result, are dvips and dvipsone.
-
-As with all such special features, to experience the datepicker, Adobe Reader
-or Acrobat are needed. Most other PDF readers do not support form field, rich
-media annotations, and JavaScript.
-
-What's New (2018/07/02) Fixed a problem when the month data contain glyphs
-beyond Basic Latin. Specify this using unicode, eg, M\u00E4rz (German for
-March).
-
-Enjoy.
-
-D. P. Story
-www.acrotex.net
-dpstory@uakron.edu
-dpstory@acrotex.net
-
-
diff --git a/macros/latex/contrib/datepicker-pro/datepicker-pro.dtx b/macros/latex/contrib/datepicker-pro/datepicker-pro.dtx
deleted file mode 100644
index dff9da79dc..0000000000
--- a/macros/latex/contrib/datepicker-pro/datepicker-pro.dtx
+++ /dev/null
@@ -1,444 +0,0 @@
-%\iffalse
-% makeindex -s gglo.ist -o datepicker-pro.gls datepicker-pro.glo
-% makeindex -s gind.ist -o datepicker-pro.ind datepicker-pro.idx
-%<*copyright>
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% datepicker-pro.sty package, %%
-%% Copyright (C) 2013-2018 %%
-%% dpstory@acrotex.net %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1.2 of %%
-%% the License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%</copyright>
-%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{datepicker-pro}
-%<package> [2018/07/02 v1.3 Date picker using Adobe Flash Builder]
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage[colorlinks,hyperindex=false]{hyperref}
-\OnlyDescription % comment out for implementation details
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-\InputIfFileExists{aebdocfmt.def}{\PackageInfo{datepicker-pro}{Inputting aebdocfmt.def}}
- {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax
- \PackageInfo{datepicker-pro}{aebdocfmt.def cannot be found}}
-\begin{document}
- \GetFileInfo{datepicker-pro.sty}
- \title{\textsf{datepicker-pro}: A Date picker using FLEX}
- \author{D. P. Story\\
- Email: \texttt{dpstory@acrotex.net}}
- \date{processed \today}
- \maketitle
- \tableofcontents
- \DocInput{\jobname.dtx}
-\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute
- \texttt{makeindex -s gind.ist -o datepicker-pro.ind datepicker-pro.idx} on the command line and recompile
- \texttt{datepicker-pro.dtx}.}
-\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute
- \texttt{makeindex -s gglo.ist -o datepicker-pro.gls datepicker-pro.glo} on the command line and recompile
- \texttt{datepicker-pro.dtx}.}
-\end{document}
-%</driver>
-% \fi
-%
-% \MakeShortVerb{|}
-% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{datepicker-pro}{Inputting aebdonotindex.def}}
-% {\PackageInfo{datepicker-pro}{cannot find aebdonotindex.def}}
-%
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
-% \section{Introduction}
-% This package creates a date picker for a PDF document using a \emph{rich media
-% annotation} (RMA). Development of this package occurred in July, 2013.
-%
-% When you have a text field that requires a date, the
-% user clicks on the date picker icon to the right of the field and a
-% floating window opens to display a standard calendar. The user may scroll
-% through the dates and and choose a date by clicking one of the dates in the calendar.
-% The floating window closes, and the formatted date appears in the input field.
-%
-% The document author has some control over the positioning of the window; the window can open a various
-% location in the application window: upper left, lower right, etc.
-% There are numerous other options for
-% customizing the calendar and formatting the return string.
-%
-% This is a ``pro'' package\marginpar{\raggedleft\textsf{Acrobat} and\strut}\marginpar{\raggedleft\textsf{Distiller} required} for AeB, which mean the PDF creator is \textsf{Adobe Distiller}.
-% The document author needs to use the usual combination of \textsf{Acrobat} and \textsf{Distiller}.
-%
-% \section{Options and Required Packages}
-% The required packages are \textsf{aeb\_pro}, \textsf{eforms}, and \textsf{rmannot}.
-% The \textsf{aeb\_pro} is used only to import icon appearance of the date picker
-% push button. Obviously, \textsf{eforms} is for text fields and push buttons; and
-% \textsf{rmannot} for importing the date picker SWF file into the document.
-% \begin{macrocode}
-\RequirePackage{aeb_pro}[2013/08/05]
-\RequirePackage{eforms}[2013/06/05]
-\RequirePackage{rmannot}[2011/09/11]
-% \end{macrocode}
-%
-% \section{The Main Code}
-%
-% \DescribeMacro{\useFLEXVer} determines the version of the FLEX SWF file to be
-% used, supported are version~3 (|\useFLEXVer{3}|) and version~4 (|\useFLEXVer{4}|).
-% As of this reading the version~4, the SWF file is very slow in loading, so version~3 is strongly
-% recommended.
-% \begin{macrocode}
-\newcommand{\useFLEXVer}[1]{\def\argi{#1}\ifnum\argi=3\relax
- \def\flexVer{3}\else\ifnum\argi=4\relax\def\flexVer{4}\else
- \def\flexVer{3}\PackageInfo{datepicker-pro}{FLEX version number not
- supported,\space\MessageBreak using FLEX 3}\fi\fi}
-\def\flexVer{3}
-\@onlypreamble\useFLEXVer
-% \end{macrocode}
-% \DescribeMacro{\dppToolTip} is used for setting the tool tip of the
-% icon push button.
-% \changes{v1.2}{2016/05/17}{Added \string\cs{iconBenOpts} access to custom options for btn}
-% \begin{macrocode}
-\newcommand{\dppToolTip}[1]{\def\dpp@ToolTip{#1}}
-\dppToolTip{Date Picker\n Click to toggle open and close\n
- Shift-click to clear and close}
-\newcommand{\pickerOpts}[1]{\def\dpp@pickerOpts{#1}}
- \pickerOpts{}
-\newcommand{\pickerInputOpts}[1]{\def\dpp@pickerInputOpts{#1}}
- \pickerInputOpts{}
-\newcommand{\iconBenOpts}[1]{\def\dpp@iconBenOpts{#1}}
- \iconBenOpts{}
-\newcommand{\pickersep}{3bp}
-% \end{macrocode}
-% Options passed through the first optional argument of \cs{datepicker}.
-% \paragraph*{Format date string.} The
-% \IndexKey{formatstring}\texttt{formatstring} uses various
-% combinations of \texttt{M}, \texttt{D}, \texttt{Y}, and possible
-% \texttt{E} as well as spaces and delimiters to format the date string.
-% The following table was extracted from the page:
-%\begin{flushleft}\small
-% \nolinkurl{http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html}
-% (found \href{http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html}{here})
-%\end{flushleft}
-%\par\noindent\begin{tabular}{cp{1in}cp{1in}}
-% \textbf{Pattern} & \textbf{Examples} &\textbf{Pattern} & \textbf{Examples}\\
-% \texttt{Y} & \texttt{YY = 05}\par \texttt{YYY=2005}\par\texttt{YYY=02005}&
-% \texttt{D} &\texttt{D = 4}\par \texttt{DD=04}\\
-% \texttt{M} & \texttt{M = 7}\par \texttt{MM=07}\par\texttt{MMM=Jul}\par\texttt{MMMM=July}&
-% \texttt{E} & \texttt{E = 1}\par \texttt{EE=01}\par\texttt{EEE=Mon}\par\texttt{EEEE=Monday}\\
-%\end{tabular}\par\medskip\noindent
-% One example is \verb!formatstring={EEEE, DD. MMMM YYYY}!.
-% \begin{macrocode}
-\define@key{ddp}{formatstring}[MM/DD/YYYY]{\def\dpp@FormatStr{#1}}
-% \end{macrocode}
-% \paragraph*{Formatting the calendar.} The \texttt{dateChooser} control
-% that is used in the SWF file contains the name of the month
-% at the top and the names of the days of the week just below it. By
-% default, the usual English month names are used (January,
-% February, \dots,December) and the usual English days of the week names are
-% used (Sunday, Monday, \dots,Saturday). However, these can be changed through
-% the use of \IndexKey{monthnames}\texttt{monthnames} and
-% \IndexKey{daynames}\texttt{daynames}. For example,
-%\begin{verbatim}
-% monthnames={Jan,Feb,Mar,Apr,May,June,July,Aug,Sept,Oct,Nov,Dec}.
-% daynames={Su,M,Tu,W,Th,F,Sa}
-%\end{verbatim}
-% The order must be the first month of the year (January, or the equivalent
-% in another language) and the first day of the week (Sunday, or its
-% equivalent). Some calendars consider Monday as the first day of the week,
-% if this is so, \emph{still} place Sunday, or its local equivalent, as the
-% first entry in the list. A different starting day is set using the
-% \IndexKey{firstday}\texttt{firstday} key. Setting
-% \texttt{firstday=1} puts Monday as the first day of the week on the
-% calendar. The values of the keys \texttt{monthnames} and \texttt{daynames} are
-% comma-delimited list of month or day names, for example,
-%\begin{verbatim}
-% daynames={So,Mo,Di,Mi,Do,Fr,Sa},
-% monthnames={Jan,Febr,Mrz,Apr,Mai,Jun,Jul,Aug,Sept,Okt,Nov,Dez},
-%\end{verbatim}
-% The value of the key \texttt{firstday} is an integer, 0\dots7.
-% \begin{macrocode}
-\define@key{ddp}{daynames}[]{\def\ddp@DayNames{#1}}
-\define@key{ddp}{monthnames}[]{\def\ddp@MonthNames{#1}}
-\def\warningMsgFirstDay{%
- The value of firstday must be a\MessageBreak
- nonnegative integer less than 6.\MessageBreak
- Setting firstday=0%
-}
-\define@key{ddp}{firstday}[0]{%
- \@tempcnta=#1
- \def\ddp@FirstDayOfWeek{#1}%
- \ifnum\@tempcnta<0\relax\PackageWarning{datepicker-pro}
- {\warningMsgFirstDay}{}\def\ddp@FirstDayOfWeek{0}\else
- \ifnum\@tempcnta>6\relax\PackageWarning{datepicker-pro}
- {\warningMsgFirstDay}{}\def\ddp@FirstDayOfWeek{0}\fi\fi
-}
-% \end{macrocode}
-% \paragraph*{Formatting the Month and Day in the return value.}
-% These keys are not needed unless in your \texttt{formatstring} you use \texttt{MMM},
-% \texttt{MMMM}, \texttt{DDD}, or \texttt{DDDD}. These should be consistent with the
-% calendar headings as well. You don't want English days of the week on a German calendar.
-% The key \IndexKey{monthnamesLong}\texttt{monthnamesLong} is used with \texttt{MMMM} and
-% \IndexKey{monthnamesShort}\texttt{monthnamesShort} with \texttt{MMM}. Similarly,
-% \IndexKey{daynamesLong}\texttt{daynamesLong} is used for formatting \texttt{DDDD}
-% and \IndexKey{daynamesShort}\texttt{daynamesShort} is used with \texttt{DDD}.
-% The values of each of these keys is a comma-delimited list of month or day names, for example
-%\begin{quote}\ttfamily\def\{{\char`\{}\def\}{\char`\}}
-% daynamesLong=\{Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,\%\\\null\qquad
-% Freitag,Samstag\},\\
-% daynamesShort=\{So,Mo,Di,Mi,Do,Fr,Sa\},\\
-% monthnamesLong=\{Januar,Februar,M\"arz,April,Mai,Juni,Juli,\%\\\null\qquad
-% August,September,Oktober,November,Dezember\},\\
-% monthnamesShort=\{Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,\%\\\null\qquad
-% Okt,Nov,Dez\},
-%\end{quote}
-% \begin{macrocode}
-\define@key{ddp}{monthnamesLong}[]{\def\ddp@monthnamesLong{#1}}
-\define@key{ddp}{monthnamesShort}[]{\def\ddp@monthnamesShort{#1}}
-\define@key{ddp}{daynamesLong}[]{\def\ddp@daynamesLong{#1}}
-\define@key{ddp}{daynamesShort}[]{\def\ddp@daynamesShort{#1}}
-% \end{macrocode}
-% The keys \IndexKey{halign}\texttt{halign}, \IndexKey{valign}\texttt{valign}, \IndexKey{hoffset}\texttt{hoffset},
-% and \IndexKey{voffset}\texttt{voffset} determine the positioning of the floating windows when it opens. The default is
-% the center of the window (for versions \texttt> 9), for version 9, this key is ignored and the window
-% appears in the upper-right of the application window. See the documentation of the \texttt{rmannot}
-% package for more detail.
-% \begin{macrocode}
-\define@key{ddp}{halign}[center]{\def\ddp@halign{#1}}
-\define@key{ddp}{valign}[center]{\def\ddp@valign{#1}}
-\define@key{ddp}{hoffset}[0]{\def\ddp@hoffset{#1}}
-\define@key{ddp}{voffset}[0]{\def\ddp@voffset{#1}}
-% \end{macrocode}
-% \paragraph*{Setting the dimensions of the window.}
-% The dimensions of the floating window are determined by
-% \IndexKey{widthOfWindow}\texttt{widthOfWindow} and
-% \IndexKey{heightOfWindow}\texttt{heightOfWindow}.
-% \begin{macrocode}
-\define@key{ddp}{widthOfWindow}[180]{\def\ddp@widthOfWindow{#1}}
-\define@key{ddp}{heightOfWindow}[180]{\def\ddp@heightOfWindow{#1}}
-% \end{macrocode}
-% \DescribeMacro{\setPickerOpts} can be used to globally set picker options.
-% \begin{macrocode}
-\newcommand{\setPickerOpts}[1]{\let\ddp@bsSAVE\\\let\ddp@uSAVE\u
- \def\\{\eqbs\eqbs}\def\u{\\u}%
- \edef\x{\noexpand\setkeys{ddp}{#1}}\x
- \let\\\ddp@bsSAVE\let\u\ddp@uSAVE
-}
-% \end{macrocode}
-% \DescribeMacro{\setPickerOptsToDefaults}resets picker options back to their
-% original defaults.
-% \begin{macrocode}
-\newcommand{\setPickerOptsToDefaults}{\let\ddp@bsSAVE\\\let\ddp@uSAVE\u
- \setkeys{ddp}{formatstring,daynames,monthnames,firstday,halign,%
- valign,hoffset,voffset,widthOfWindow,heightOfWindow,%
- monthnamesLong,monthnamesShort,daynamesLong,daynamesShort}%
- \let\\\ddp@bsSAVE\let\u\ddp@uSAVE
-}
-\setPickerOptsToDefaults
-% \end{macrocode}
-% \DescribeMacro{\dppBtnAction} sets the action of the icon push button. When
-% pressed, it simply activates the RMA, when shift-clicked, it resets the field
-% and closes the RMA.
-% \begin{macrocode}
-\def\dppBtnAction#1{%
- var annot = this.getAnnotRichMedia(this.pageNum,"#1");\r
- if (event.shift){\r\t
- this.resetForm(["txt#1"]);\r\t
- annot.activated=false;\r
- } else
-% \end{macrocode}
-% If widget is already activated close it, otherwise open it.
-% \begin{macrocode}
- annot.activated=( annot.activated )?false:true;
-}
-% \end{macrocode}
-% \DescribeMacro{\datepicker} is the primary command for this package. It produces
-% a readonly text field to hold the chosen date, a rich media annotation that holds
-% the flash widget (SWF), \texttt{datepickerN.swf}, and a push button containing
-% script to activate the annotation.
-%
-% \paragraph*{Naming conventions.} Argument \texttt{\#2} is the base name passed
-% by the author. The name of the RMA is \texttt{name=\#2}; the field name of the
-% input text field is \texttt{txt\#2} and the field name of the push button is
-% \texttt{btn\#2}. There is also a hidden text field named \texttt{htxt\#2}.
-% \begin{macrocode}
-\newcommand{\datepicker}[4][]{\begingroup
- \def\\{\eqbs\eqbs}\def\u{\\u}
-% \end{macrocode}
-% Expand \texttt{\#1} then get options. Useful if options are passed as a macro.
-% \begin{macrocode}
- \edef\x{\noexpand\setkeys{ddp}{#1}}\x
-% \end{macrocode}
-% Set window related parameters.
-% \begin{macrocode}
- \setWindowDimPos{width={default=\ddp@widthOfWindow},%
- height={default=\ddp@heightOfWindow},%
- position={halign=\ddp@halign,valign=\ddp@valign,
- hoffset=\ddp@hoffset,voffset=\ddp@voffset}}%
-% \end{macrocode}
-% This hidden field holds the date selected in a standard format of \texttt{MM/DD/YYYY},
-% this helps me to highlight the date when the user opens the date picker again.
-% \begin{macrocode}
- \makebox[0pt][l]{\textField[\F{\FHidden}\BC{}\BG{}\W0
- ]{htxt#2}{1bp}{1bp}}%
-% \end{macrocode}
-% The text field that holds the date selected by the user through the date package.
-% \begin{macrocode}
- \expandafter\textField\expandafter[\dpp@pickerInputOpts\Ff{\FfReadOnly}
- \AA{\AAValidate{%
- this.getAnnotRichMedia(this.pageNum,"#2").activated=false;}
- }]{txt#2}{#3}{#4}\makebox[0pt][r]{%
-% \end{macrocode}
-% Followed by the SWF widget, very small, invisible, transparent, and hidden by the
-% text field.
-% \begin{macrocode}
- \rmAnnot[invisible,transparentBG,deactivated=pageclose,
- passcontext,\dpp@pickerOpts,windowed,name=#2,
- flashvars={field=txt#2&formatstring=\dpp@FormatStr
- \ifx\ddp@DayNames\@empty\else
- &daynames=\ddp@DayNames\fi
- \ifx\ddp@MonthNames\@empty\else
- &monthnames=\ddp@MonthNames\fi
- \ifnum\ddp@FirstDayOfWeek=0 \else
- &firstday=\ddp@FirstDayOfWeek\fi
- \ifx\ddp@monthnamesLong\@empty\else
- &monthnamesLong=\ddp@monthnamesLong\fi
- \ifx\ddp@monthnamesShort\@empty\else
- &monthnamesShort=\ddp@monthnamesShort\fi
- \ifx\ddp@daynamesLong\@empty\else
- &daynamesLong=\ddp@daynamesLong\fi
- \ifx\ddp@daynamesShort\@empty\else
- &daynamesShort=\ddp@daynamesShort\fi
- }
- ]{4bp}{4bp}{dppDatePicker}}\kern\pickersep
-% \end{macrocode}
-% Finally, the push button that has an icon for its appearance.
-% \changes{v1.2}{2016/05/17}{Added access to custom options for btn}
-% \begin{macrocode}
- \expandafter\pushButton\expandafter[\dpp@iconBenOpts\TU{\dpp@ToolTip}
- \H{O}\S{S}\BC{}\BG{}\FB{true}\I{null}\TP{1}
- \A{\JS{\dppBtnAction{#2}}}
- ]{btn#2}{\dp@iconWidth}{\dp@iconHeight}\endgroup
-}
-% \end{macrocode}
-% \paragraph*{Installing the picker icon.} We use \cs{declareMultiImages} from AeB Pro
-% to create a simplified method of installing the picker icon.
-% \begin{macro}{\setpickerIcon}
-% The command takes two arguments, the path to the icon, and the names of the
-% date picker fields.
-%\begin{verbatim}
-% \setpickerIcon{icons/dp_icon2.pdf}{PickADate,GERDate}
-%\end{verbatim}
-% The second argument is a comma-delimited list picker names (the first argument
-% of the \cs{datepicker} command).
-% \begin{macrocode}
-\newcommand{\setpickerIcon}[2]{% #1=path, #2=placement
- \let\@thesetoks\@empty
- \@for\@dppName:=#2\do{\edef\@thesetoks{\@thesetoks btn\@dppName,}}%
- \def\stripOffComma##1,\@nil{\def\@placeIcons{##1}}%
- \expandafter\stripOffComma\@thesetoks\@nil
- \declareImageAndPlacement{name=dppIcon,path=#1,%
- placement={\@placeIcons}}%
-% \end{macrocode}
-% We then write a \texttt{execJS} environment to a CUT file, then
-% input it back in immediately. Here, I'm using the write handle
-% from the \textsf{comment} package, brought in by \textsf{AeB Pro}.
-% At this moment, it is not being used.
-% \begin{macrocode}
- \immediate\openout\CommentStream=ddpdocassmbly.cut
- \immediate\write\CommentStream{\string\begin{execJS}{dppicons}}%
- \immediate\write\CommentStream{\string\insertPreDocAssembly}%
- \immediate\write\CommentStream{\string\end{execJS}}%
- \immediate\closeout\CommentStream
- \input{ddpdocassmbly.cut}%
-}
-\@onlypreamble\setpickerIcon
-% \end{macrocode}
-% \end{macro}
-% The two commands \DescribeMacro\pickerIconWidth\cmd\pickerIconWidth{}
-% and \DescribeMacro\pickerIconHeight\cmd\pickerIconHeight{} set the width
-% and the height, respectively, of the icon picker icon. The default to \texttt{6bp}.
-% \begin{macrocode}
-\newcommand\pickerIconWidth[1]{\def\dp@iconWidth{#1}}
-\pickerIconWidth{10bp}
-\newcommand\pickerIconHeight[1]{\def\dp@iconHeight{#1}}
-\pickerIconHeight{12bp}
-% \end{macrocode}
-%
-% \section{Supporting Document JavaScript}
-% The \texttt{popDateField} is called from the Flash widget to pass the date from the widget
-% to the input field.
-% \begin{macrocode}
-\begin{insDLJS}{dppdljs}{JavaScript for Date Picker Pro}
-% \end{macrocode}
-% The \DescribeMacro{setDateField}\texttt{setDateField} function is called by the widget to set the field value. The widget
-% passes three arguments: \texttt{fname} (the field name that is the target of the date),
-% \texttt{value} is the value of the field that will appear to the user, and \texttt{svalue}
-% is the value formatted using the date template \texttt{MM/DD/YYYY}. This latter value is used
-% to highlight this date if the user returns to the same calendar to change the date.
-% \changes{v1.3}{2018/07/02}{Handle non-ascii glyphs with unicode representation}
-% \begin{macrocode}
-function _dppConvUnicode(v){
- var fm,re,str=v;
- re=/\\u([0-8A-Fa-f]{4})/g
- while ((fm=str.search(re))!=-1) {
- str=str.substring(0,fm)
- +eval("String.fromCharCode(0x"
- +str.substring(fm+2,fm+6)+")")
- +str.substring(fm+6);
- }
- return str;
-}
-function setDateField(fname,value,svalue) {
-%console.println("setDateField: fname="+fname
-% +", value="+value+", svalue="+svalue);
- var f = this.getField(fname);
- var g = this.getField("h"+fname);
- if (f !=null ) {
- f.value = _dppConvUnicode(value);
- g.value = svalue;
- }
-}
-% \end{macrocode}
-%\DescribeMacro{getDateValue}The JavaScript function \texttt{getDateValue} is also called
-% by the widget to get the current values of the target field. The return value
-% is an object containing these two values.
-% \begin{macrocode}
-function getDateValue(fname) {
-%console.println("getDateValue: fname="+fname);
- var f = this.getField(fname);
- var g = this.getField("h"+fname);
- var value;
- if ( f != null )
- value = { value: f.value, svalue: g.value };
- return value;
-}
-\end{insDLJS}
-% \end{macrocode}
-% We wait until after the preamble to see if the document author chooses a version
-% for FLEX. We also check to see if a path to the widget has been set. The document
-% author is required to define a path to the datepicker SWF with the name of \cs{dppPath}:
-%\begin{verbatim}
-%\definePath{\dppPath}{C:/Users/Public/Documents/My TeX Files/%
-% tex/latex/aeb/aebpro/datepicker_pro/swf}
-%\end{verbatim}
-% \begin{macrocode}
-\def\dpp@initdpp{%
- \@ifundefined{dppPath}{\PackageError{datepicker-pro}
- {You must specify the path to datepicker\flexVer.swf\MessageBreak
- by defining \string\dppPath\space in the configuration file\MessageBreak
- dp-pro.cfg, see documentation}{}}
- {\saveNamedPath{dppDatePicker}{\dppPath/datepicker\flexVer.swf}}%
-}
-\AtBeginDocument{\dpp@initdpp}
-% \end{macrocode}
-%\changes{v1.1}{2016/05/07}{Added the configuration file \string\texttt{dp-pro.cfg}, used
-%for specifying the path to SWF.}
-% \begin{macrocode}
-\InputIfFileExists{dp-pro.cfg}{}{}
-%</package>
-% \end{macrocode}
-%\Finale
-\endinput
diff --git a/macros/latex/contrib/datepicker-pro/datepicker-pro.ins b/macros/latex/contrib/datepicker-pro/datepicker-pro.ins
deleted file mode 100644
index 986672066b..0000000000
--- a/macros/latex/contrib/datepicker-pro/datepicker-pro.ins
+++ /dev/null
@@ -1,59 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% Copyright 2016--2018 D. P. Story
-%% -------------------------------------------
-%%
-%% It may be distributed under the conditions of the LaTeX Project Public
-%% License, either version 1.2 of this license or (at your option) any
-%% later version. The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.2 or later is part of all distributions of LaTeX
-%% version 1999/12/01 or later.
-%%
-%% --------------- start of docstrip commands ------------------
-%%
-\def\filedate{2016/01/12}
-\def\batchfile{datepicker-pro.ins}
-
-\input docstrip
-\ifx\generate\undefined
- \Msg{**********************************************}
- \Msg{*}
- \Msg{* This installation requires docstrip}
- \Msg{* version 2.4 or later.}
- \Msg{*}
- \Msg{* An older version of docstrip has been input}
- \Msg{*}
- \Msg{**********************************************}
- \errhelp{Move or rename old docstrip.tex and get a newer one.}
- \errmessage{Old docstrip in input path}
- \batchmode
- \csname @@end\endcsname\end
-\fi
-
-\keepsilent
-\askforoverwritefalse
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\preamble
-\endpreamble
-
-\generate
-{%
- \file{datepicker-pro.sty}{\from{datepicker-pro.dtx}{copyright,package}}
-}
-
-
-\Msg{***************************************************************}
-\Msg{*}
-\Msg{* \space To finish the installation you have to copy the files }
-\Msg{*}
-\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX}
-\Msg{*}
-\Msg{***************************************************************}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\endinput
diff --git a/macros/latex/contrib/datepicker-pro/doc/datepicker-pro.pdf b/macros/latex/contrib/datepicker-pro/doc/datepicker-pro.pdf
deleted file mode 100644
index a522036760..0000000000
--- a/macros/latex/contrib/datepicker-pro/doc/datepicker-pro.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.pdf b/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.pdf
deleted file mode 100644
index 891c636ddd..0000000000
--- a/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.tex b/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.tex
deleted file mode 100644
index 76e9f4d941..0000000000
--- a/macros/latex/contrib/datepicker-pro/doc/datepickerpro_man.tex
+++ /dev/null
@@ -1,678 +0,0 @@
-% http://livedocs.adobe.com/flex/3/html/help.html?content=controls_12.html
-% http://livedocs.adobe.com/flex/3/html/help.html?content=formatters_4.html
-% http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html
-% http://blog.flexexamples.com/2008/02/12/changing-the-next-and-previous-year-navigation-icons-on-a-datechooser-control-in-flex/
-% http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf626ae-7feb.html
-% http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateBase.html
-% http://blog.flexexamples.com/2007/12/11/using-the-datebase-class-in-flex/
-% http://blog.flexexamples.com/2008/11/07/adding-custom-context-menu-items-to-a-flex-application/
-% http://flexdevtips.blogspot.com/2010/01/flex-context-menus.html
-% http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7d9b.html
-% http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/DateChooser.html
-% http://www.adobe.com/devnet/flash-builder.html
-\documentclass{article}
-\usepackage[fleqn]{amsmath}
-\usepackage[
- web={centertitlepage,usetemplates,designv,
- forcolorpaper,tight*,latextoc,pro},%usesf,
- eforms,uselayers,graphicxsp={showembeds},aebxmp
-]{aeb_pro}
-\usepackage{xbmks}
-%\usepackage{myriadpro} %[usecmtt]
-\usepackage[altbullet]{lucidbry}
-\usepackage{datepicker-pro}
-\usepackage{aeb_mlink}
-\definePath{\dppPath}{C:/Users/Public/Documents/My TeX Files/%
- tex/latex/aeb/aebpro/datepicker-pro/swf}
-\setpickerIcon{../icons/dp_icon1.pdf}{date1,PickADate}
-\setpickerIcon{../icons/dp_icon2.pdf}{GERDate}
-\setlength{\marginparwidth}{1.25in}
-%\usepackage{array}
-
-\DeclareInitView{layoutmag={navitab:UseOutlines}}
-\xbmksetup{colors={int=red},styles={intbf}}
-
-
-%\usepackage{makeidx}
-%\makeindex
-\usepackage{acroman}
-\usepackage[active]{srcltx}
-\urlstyle{rm}
-
-\def\anglemeta#1{$\langle\textit{\texttt{#1}}\rangle$}
-\def\meta#1{\textit{\texttt{#1}}}
-\def\darg#1{\{#1\}}
-\def\oarg#1{[#1]}
-
-\def\DM#1{\marginpar{\raggedleft\small\cs{#1}}}
-
-\DeclareDocInfo
-{
- university={\AcroTeX.Net},
- title={\texorpdfstring{The \textsf{datepicker-pro} Package\\[1em]}
- {datepicker-pro: }Picking a date using Flash},
- author={D. P. Story},
- email={dpstory@acrotex.net},
- subject={Documentation of datepicker-pro from for AeB Pro},
- talksite={\url{www.acrotex.net}},
- version={1.3, 2018/07/02},
- keywords={AeB, Adobe Acrobat, JavaScript, datepicker, FLEX},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL={http://www.acrotex.net}
-}
-
-\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
- \kern-.6em \hbox{$\mathcal S$}}$}
-
-\universityLayout{fontsize=Large}
-\titleLayout{fontsize=LARGE}
-\authorLayout{fontsize=Large}
-\tocLayout{fontsize=Large,color=aeb}
-\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb}
-\subsectionLayout{indent=-31.25pt,color=aeb}
-\subsubsectionLayout{indent=0pt,color=aeb}
-\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}}
-
-%\pagestyle{empty}
-%\parindent0pt\parskip\medskipamount
-
-\chngDocObjectTo{\newDO}{doc}
-\begin{docassembly}
-var titleOfManual="The Datepicker Pro Manual";
-var manualfilename="Manual_BG_Print_ddp.pdf";
-var manualtemplate="Manual_BG_Blue.pdf"; // Blue, Green, Brown
-var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate;
-var doc;
-var buildIt=false;
-if ( buildIt ) {
- console.println("Creating new " + manualfilename + " file.");
- doc = \appopenDoc({cPath: _pathToBlank, bHidden: true});
- var _path=this.path;
- var pos=_path.lastIndexOf("/");
- _path=_path.substring(0,pos)+"/"+manualfilename;
- \docSaveAs\newDO ({ cPath: _path });
- doc.closeDoc();
- doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true});
- f=doc.getField("ManualTitle");
- f.value=titleOfManual;
- doc.flattenPages();
- \docSaveAs\newDO({ cPath: manualfilename });
- doc.closeDoc();
-} else {
- console.println("Using the current "+manualfilename+" file.");
-}
-var _path=this.path;
-var pos=_path.lastIndexOf("/");
-_path=_path.substring(0,pos)+"/"+manualfilename;
-\addWatermarkFromFile({
- bOnTop:false,
- bOnPrint:false,
- cDIPath:_path
-});
-\executeSave();
-\end{docassembly}
-
-\begin{document}
-
-\maketitle
-
-\pdfbookmarkx[1]{Title Page}[action={\Named{FirstPage}}]{TitlePage}
-\pdfbookmarkx[1]{Links to AcroTeX.Net}[action={/S/GoTo/D(undefined)},%
- color=magenta,style={bf}]{acrotex}
-\belowpdfbookmarkx{http://www.acrotex.net}[action={\URI{http://www.acrotex.net}},%
- color=magenta,style={bf}]{home}
-\belowpdfbookmarkx{http://blog.acrotex.net}[action={\URI{http://blog.acrotex.net}},%
- color=magenta,style={bf}]{blog}
-
-
-\selectColors{linkColor=black}
-\tableofcontents
-\selectColors{linkColor=webgreen}
-
-\section{Introduction}\label{s:intro}
-
-% ff, fi, fl, ffl
-
-Development for this work occurred in July 2013.\footnote{Then I forgot about it.} At that time a
-cyber-colleague, G\"{u}nther F\"{u}llerer, sent me a \emph{date picker} he
-had written using form fields. It was a very impressive work but created a
-large number of form fields, one for each date in a calendar month. However,
-instead of working on it myself, improving and generalizing it, I decided to
-write a date picker package using a Flash window to display the dates, and
-that is what I did. Below is the date picker without any options; it is set
-up for English-style dates (MM/DD/YYYY).
-\begin{quote} %\previewtrue
- Enter a date: \kern1bp\datepicker{date1}{1in}{11bp}\\[3bp]
- \phantom{Enter a date:} \kern1bp\verb!\datepicker{date1}{1in}{11bp}!
-\end{quote}
-Each use of the \cs{datepicker} command creates four PDF objects: (1) a
-visible text field that displays the formatted date; (2) a visible push
-button with an icon appearance; (3) a small hidden text field that
-holds a ``shadow'' date, more on that later; and (4) a hidden rich media
-annotation (RMA) which when activated creates a floating window that
-displays a calendar.
-
-The \cs{datepicker} command takes four arguments, the first of which is
-optional. The first argument is used to modify the date picker, the second
-is a unique name (\texttt{date1} in the above example), these are followed
-by the width and height of the text input field.
-
-\paragraph*{Evolution of date picking.} It has been several years since I first issued
-the \pkg{datepicker-pro} package. Over that period, two events impact this package:
-\begin{enumerate}
- \item Adobe has finally provided native support for date picking
- through its \app{Acrobat Reader DC} application (and in
- \app{Acrobat} itself, of course). Experience the date field below.
-\begin{quote}%\previewOn
- \textField[\AA{%
- \AAKeystroke{AFDate_KeystrokeEx("m/d/yy")}
- \AAFormat{AFDate_FormatEx("m/d/yy")}
- }]{goNatDate}{1in}{11bp}\quad
-\begin{minipage}[t]{2in}\small
-\begin{Verbatim}
-\textField[\AA{%
- \AAKeystroke{AFDate_KeystrokeEx("m/d/yy")}
- \AAFormat{AFDate_FormatEx("m/d/yy")}
-}]{goNatDate}{1in}{11bp}
-\end{Verbatim}
-\end{minipage}
-\end{quote}
-This feature has been long in coming and is finally here. Of course, this
-date picking feature is not supported in any other PDF viewer, but then,
-these non-Adobe PDF viewers do not support the approach taken by this package
-either.
-
-To my knowledge, there is no way to control the design of the calendar that
-appears as a popup; for example, a calendar in the German language cannot
-be specified. Going under the assumption that the calendar will be in the
-language of the \app{Reader DC} being used, I downloaded the German version
-of \app{Reader DC} and determined that the calendar is not
-localized to the viewer language. That's not good.
-
-\item This package uses \app{Flash} technology, which is still supported by
- Adobe, but it has drawn some of the (user-interface) features offered
- to \app{Acrobat} users. \app{Flash} is probably not supported by any
- other PDF viewer.
-\end{enumerate}
-To take full advantage of this package, the end-user must use \app{Reader DC}
-or higher.
-
-\section{Requirements}
-
-This package belongs to the high-class family of
-\textsf{\textcolor{blue}{AeB~Pro}}, hence, the major requirement of this
-package is that the PDF be created using \app{Adobe Distiller}, see
-\hyperref[ss:PDFCreator]{Section~\ref*{ss:PDFCreator}} for details. Of course, if you have
-\app{Distiller}, surely you have \app{Adobe Acrobat}, which is also
-required in the workflow.
-
-\subsection{{\LaTeX} package requirements}
-
- The package builds on packages developed as part of \textsf{AeB} or \textsf{AeB~Pro}:
-\begin{itemize}
- \item\textsf{aeb\_pro}: supplies code to create icon appearances for the
- date picker push buttons.
- \item\textsf{rmannot}: the package for creating rich media annotations
- (SWF, FLV, etc); \textsf{rmannot} uses the \textsf{graphicxsp} package.
- \item\textsf{eforms}: used to create Acrobat form buttons and text
- fields, both hidden and visible. It also supplies JavaScript support as
- it imports the \textsf{insdljs} package.
-\end{itemize}
-
-
-\reversemarginpar
-
-\subsection{PDF creator requirements}\label{ss:PDFCreator}
-
-The big restriction on this package is the requirement to use
-\app{Adobe Distiller} (version 6.0 or later). The package supports the
-creation of PostScript using \textsf{dvips} and
-\textsf{dvipsone}\marginpar{\raggedleft \textsf{dvipsone}\textsf{\\dvips}}. These
-``drivers'' are defined through the required package \textsf{aeb\_pro}.
-
-\subsection{Transparency requirements}
-
-Transparency is only required to make the \EXT{RMA} transparent; unlike a form
-field, a \EXT{RMA} does not have a hidden property, so we try to make it
-transparent.
-
-To get the transparency effect, you must distill using a \EXT{JOBOPTIONS} file
-that supports transparency. The \pkg{datepicker-pro} package comes with an
-\app{Distiller} job options file named
-\texttt{Standard\_transparency.joboptions}. Instead of going through
-the above rather tedious instructions, drop this file in the place
-where \app{Distiller} expects to find its own \EXT{JOBOPTIONS}
-files.\footnote{Go to \textsf{Settings > Edit Adobe PDF Settings}
-in the \app{Distiller} application window, then click the \textsf{SaveAs}
-button. A \textsf{Save Adobe PDF Settings As} dialog box opens and
-you can then see where \app{Distiller} likes to save its
-\texttt{.joboptions} file. Copy the provided \texttt{.joboptions} to
-the folder and restart Distiller, the \texttt{Standard\_transparency}
-should now be visible in the drop down \textsf{Default Settings}
-list.}
-
-If you distill without this \texttt{Standard\_transparency}, you get an
-error message in the \textbf{Distiller} log that reads like this:
-\begin{small}
-\begin{Verbatim}
-%%[Error: The PostScript contains Transparency pdfmark, job aborted.]%%
-%%[ /AllowTransparency is false in job option settings.]%%
-%%[ Error: undefined; OffendingCommand: pdfmark;
- ErrorInfo: Transparency Group ]%%
-\end{Verbatim}
-\end{small}%
-This suggests that you should use a \EXT{JOBOPTIONS} file that supports
-transparency! Look for the \texttt{Standard\_transparency.joboptions} file in
-the \texttt{joboptions} folder of this distribution.
-
-\subsection{Viewing requirements}
-
-As with any document that contains more than just text content, \app{Adobe
-Acrobat Reader} or \app{Adobe Acrobat} is required to actually see the
-effects of the \pkg{datepicker-pro} package. Most third-party PDF readers do
-not support interactive form fields, rich-media annotations, and Acrobat JavaScript API. Consumers
-of your document need to use \app{Adobe Reader} or \app{Acrobat}.
-
-%\section{Options of this package}
-%There are no options for this package.
-
-\section{The \texorpdfstring{\protect\pkg{datepicker-pro}}{datepicker-pro} commands}
-
-We document the commands required in the preamble, the configuration file, and one that can
-be placed in the preamble or the body of the document.
-
-\subsection{Commands for the preamble}
-
-A typical preamble would contain the necessary packages required by
-\pkg{datepicker-pro}:
-\begin{minipage}[t]{\linewidth}\kern0pt
-\begin{minipage}[t]{.5\linewidth}\kern0pt
-\begin{Verbatim}[fontsize=\small,commandchars=!()]
-\documentclass{article}
-\usepackage[%
- driver=dvips,
- web={extended,tight*,usesf},
- eforms,graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{rmannot}
-\usepackage{datepicker-pro}
-\end{Verbatim}
-\end{minipage}\hfill
-\begin{minipage}[t]{.5\linewidth}\kern0pt
-\begin{Verbatim}[fontsize=\small,commandchars=!()]
-\documentclass{article}
-\usepackage[%
- driver=dvips,
- web={extended,tight*,usesf},
- eforms,graphicxsp={showembeds},
- rmannot
-]{aeb_pro}
-\usepackage{datepicker-pro}
-\end{Verbatim}
-\end{minipage}
-\end{minipage}
-\newtopic\newtopic The use of the \pkg{web} package is optional. On the left is the
-traditional way of using the \pkg{rmannot} package, followed by the
-\pkg{datepicker-pro} package. More recently (2013/08/05), I've made
-the \pkg{rmannot} an option of the \pkg{aeb\_pro} package. Shown on the right
-is the \texttt{rmannot} option for \pkg{aeb\_pro}.
-
-
-\bVerb\takeMeasure{\string\definePath\darg{\string\dppPath}\darg{\meta{path}}}%
-\begin{dCmd}[commandchars=!()]{\bxSize}
-\useFLEXVer{3|4}
-\definePath{\dppPath}{!meta(path)}
-\setpickerIcon{!meta(path)}{!meta(list)}
-\end{dCmd}
-\endgroup\noindent
-The \cs{useFLEXVer}\DM{useFLEXVer} command declare what version of \EXT{FLEX}
-is to be used,\footnote{Adobe has since re-branded \EXT{FLEX} to \app{Adobe
-Flash Builder}.} choices are 3 or 4, corresponding to \EXT{FLEX~3.6} and
-\EXT{FLEX~4.5}, respectively. I've found the version~4 is very slow in
-loading; not recommended. If \cs{useFLEXVer} is not present in the preamble,
-version~3 is used by default.
-
-The \cs{definePath\darg{\cs{dppPath}}}\DM{dppPath}
-charts out the path to the date picker SWF file; there are two versions
-\texttt{datepicker3.swf} and \texttt{datepicker4.swf}. The \cs{definePath}
-command is defined in \pkg{eforms} is simply allows you construct paths
-with normally forbidden characters. The \cs{dppPath} command is expected
-by \pkg{datepicker-pro} to be defined; otherwise, the file will not
-compile. The \meta{path} needs to be an \emph{absolute path} on your file
-system that points to the location of the \EXT{SWF} files. The declaration
-of the path \cs{dppPath} may be moved to the configuration file\marginpar{\small\raggedleft{config file}},
-the topic of \hyperref[s:config]{Section~\ref*{s:config}}
-
-Finally, the \cs{setpickerIcon}\DM{setpickerIcon} declares the \meta{path} to
-the date picker icon; this is a relative (or absolute) path and includes the
-icon file in the path. The argument \meta{list} is a comma-delimited list of
-names of each of the date picker fields created in the document. If you want
-to have several date picker fields, some of which have different date picker
-icons, then you need to declare additional icons using \cs{setpickerIcon}.
-The dimensions of the icon are determined by the command declarations
-\cs{setpickerIconWidth} and \cs{setpickerIconHeight}, these are discussed in
-\hyperref[s:PB]{Section~\ref*{s:PB}}. These latter two commands may be
-declared in the preamble or in the body of the document. This package
-distribution provides to icon files \texttt{dp\_icon1.pdf},
-\texttt{dp\_icon2.pdf}, \dots, \texttt{dp\_icon7.pdf}, found in the \texttt{icons} folder.\footnote{My thanks to
-J\"{u}rgen Gilg for providing additional icon files.}
-
-
-\newtopic\noindent
-The following illustrates the above three commands.
-\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
-%\useFLEXVer{4} % 3 or 4
-\definePath{\dppPath}{C:/Users/Public/Documents/My TeX Files/%
- tex/latex/aeb/aebpro/datepicker-pro/swf}
-\setpickerIcon{../icons/dp_icon2.pdf}{date1,PickADate,GERDate}
-\end{Verbatim}
-In this example, there are three date fields created, each of them is
-given the appearance of the icon file \texttt{dp\_icon2.pdf}.
-Or, we can declare,
-\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
-% !normalfont!texttt(\dppPath) moved to !texttt(dp-pro.cfg), see !hyperref[s:config](Section !ref(s:config)).
-\setpickerIcon{../icons/dp_icon1.pdf}{date1,PickADate}
-\setpickerIcon{../icons/dp_icon2.pdf}{GERDate}
-\end{Verbatim}
-where a different icon is used for the \texttt{GerDate} date picker.
-
-\subsection{The configuration file}\label{s:config}
-
-Rather than placing the path to the \texttt{swf} folder of this distribution in each
-file, you can place the declared path in the package configuration file, \texttt{dp-pro.cfg}.
-The file is found in the root directory of the package distribution. An example of its contents
-is given below.
-\begin{Verbatim}
-%
-% datepicker-pro configuration file
-%
-\definePath{\dppPath}{C:/Users/Public/Documents/My TeX Files/%
- tex/latex/aeb/aebpro/datepicker-pro/swf}
-\end{Verbatim}
-Edit this file to reflect the absolute path to the \texttt{swf} folder of
-this distribution on your file system.
-
-\subsection{Commands for the body of the document}
-
-Within the body of the document, there is only one command, \cs{datepicker}:
-\bVerb\takeMeasure{\cs{datepicker}[\meta{options}]\darg{\meta{name}}\darg{\meta{width}}\darg{\meta{height}}}%
-\begin{dCmd}[commandchars=!()]{\bxSize}
-\datepicker[!meta(options)]{!meta(name)}{!meta(width)}{!meta(height)}
-\end{dCmd}
-\endgroup\noindent
-The \meta{name} argument should consist only of letters or numbers
-(however, a number must not be the first character in the name); for
-example, \texttt{date1} or \texttt{PickADate} is acceptable. The
-\meta{name} argument is used to build names for the components of
-the date picker field. The input text field, which is set to read only, is
-named \texttt{txt\anglemeta{name}}, the push button is named
-\texttt{btn\anglemeta{name}}, the hidden text field is named
-\texttt{htxt\anglemeta{name}}, and finally, the RMA has a name of
-\meta{name}. The \meta{width} and \meta{height} arguments are standard
-to form fields, as defined by \pkg{eforms}. These two dimensions are applied
-to the input text field only.
-
-Now for the \meta{options} argument of \cs{datepicker}. The options consist
-of key-value pairs (\texttt{key=value}) and are rather numerous.
-\begin{itemize}\def\DescribeMacro#1{}
-\item \textbf{Format date string}\vskip-.5\baselineskip\kern0pt
- \begin{itemize}
- \item\texttt{formatstring}: The value of the \texttt{formatstring} key
- uses various combinations of \texttt{M}, \texttt{D}, \texttt{Y},
- and possible \texttt{E} as well as spaces and delimiters to format
- the date string. The following table was extracted from the page:
-\begin{quote}\raggedright\urlstyle{tt}
-\mlurl{http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/formatters/DateFormatter.html}
-\end{quote}\bigskip
-\item[]\begin{tabular}{cp{1.4in}cp{1.4in}}
- \multicolumn{4}{c}{\bfseries Table of Formatting Patterns}\\\hline
- \textbf{Pattern} & \textbf{Examples} &\textbf{Pattern} & \textbf{Examples}\\
- \texttt{Y} & \texttt{YY = 05}\par \texttt{YYY=2005}\par\texttt{YYY=02005}&
- \texttt{D} &\texttt{D = 4}\par \texttt{DD=04}\\
- \texttt{M} & \texttt{M = 7}\par \texttt{MM=07}\par\texttt{MMM=Jul}\par\texttt{MMMM=July}&
- \texttt{E} & \texttt{E = 1}\par \texttt{EE=01}\par\texttt{EEE=Mon}\par\texttt{EEEE=Monday}\\
-\end{tabular}\bigskip
-\item[] One example is \verb!formatstring={EEEE, DD. MMMM YYYY}!. The default
-formatting string is \verb!formatstring={MM/DD/YYYY}!.
- \end{itemize}
-\item \textbf{Formatting the calendar.} The \textsf{dateChooser} control that
- is used in the \EXT{SWF} file contains the name of the month at the top
- and the names of the days of the week just below it. By default, the
- usual English month names are used (January, February, \dots,December)
- and the usual English days of the week names are used (Sunday, Monday,
- \dots,Saturday). However, these can be changed through the use of
- \texttt{monthnames} and \texttt{daynames} key.
-
- \textbf{A note on Unicode.} Any glyph outside the range of Basic Latin (U0020-U007F), unicode notation may
- be used. For example the German word for March is M\"{a}rz; it must be
- specified as \verb~M\u00E4rz~, see the example of German dates presented below.
- \begin{itemize}
- \item \texttt{daynames}: The names of the days that appear on the
- popup calendar. The value of \texttt{daynames} is a
- comma-delimited list of seven names for the days. The default
- is \verb!daynames={S,M,T,W,T,F,S}!. These labels appear if the
- \texttt{daynames} key is not used.
- \item \texttt{monthnames}: The names of the months
- that appear on the popup calendar. The value for
- \texttt{monthnames} is a comma-delimited list of twelve names
- of the months. The default is
- \verb!monthnames={January,February,...,December}!. These
- labels appear if the \texttt{monthnames} key is not used.
- See the initial date picker example on page~\pageref*{s:intro} for an
- example of these default values.
- \item[] Other possible values for these, in the English language, are
-\begin{Verbatim}[xleftmargin=20pt]
-monthnames={Jan,Feb,Mar,Apr,May,June,July,Aug,Sept,Oct,%
- Nov,Dec}.
-daynames={Su,M,Tu,W,Th,F,Sa}
-\end{Verbatim}
-There should be no spurious spaces in the values of any of these keys; in
-the listing above, I've wrapped the months around to a new line, and
-inserted a comment character (\texttt{\%}) to kill any space that may be
-generated.
-\item[] The order must be the first month of the year (January, or the
- equivalent in another language) and the first day of the week (Sunday,
- or its equivalent). Some calendars consider Monday as the first day of
- the week, if this is so, \emph{still} place Sunday, or its local
- equivalent, as the first entry in the list. A different starting day
- is set using the \texttt{firstday} key.
- Setting \texttt{firstday=1} puts Monday as the first day of the week
- on the calendar.
-\item \texttt{firstday}: The value of the key \texttt{firstday} is an integer, 0\dots7.
-The default is~0.
-\end{itemize}
-\item[] Next is an example of some German names.
-\begin{Verbatim}[xleftmargin=\amtIndent]
-daynames={So,Mo,Di,Mi,Do,Fr,Sa},
-monthnames={Jan,Febr,Mrz,Apr,Mai,Jun,Jul,Aug,Sept,Okt,%
- Nov,Dez},
-firstday=1
-\end{Verbatim}
-On the German calendar, \emph{Montag} (\emph{Mo}) is the first day of the week.
- \item \textbf{Formatting the Month and Day in the return value.} When the
- date string is returned to the input text field it is formatted
- according to the value of the key \texttt{formatstring}. The keys is
- this section are useful only if your \texttt{formatstring} contains
- any of the formatting combinations \texttt{MMM}, \texttt{MMMM},
- \texttt{DDD}, or \texttt{DDDD}. These indicate you want the month or
- day word-names returned, rather than a numerical value.
-
- \item[] The four keys below take as a value of comma-delimited list of names.
-
-% These should be consistent with
-% the calendar headings as well. You don't want English days of the
-% week on a German calendar. The key
- \begin{itemize}
- \item\texttt{monthnamesLong}: The long name of the months and is used with
- \texttt{MMMM} formatting pattern.
- \item \texttt{monthnamesShort}: The short name of the months, used
- when \texttt{MMM} is the formatting pattern.
- \item \texttt{daynamesLong}: The long names for the days of the week,
- used for formatting \texttt{DDDD}.
- \item \texttt{daynamesShort}: The short names for the days of the
- week and is used with \texttt{DDD}.
- \end{itemize}
- \item[] The defaults are the English counterparts: January/Jan, Sunday/Sun.
- \item[] For the German language, we can set these values as follows:
-\begin{Verbatim}[xleftmargin=20pt]
-daynamesLong={Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,%
- Freitag,Samstag},
-daynamesShort={So,Mo,Di,Mi,Do,Fr,Sa},
-monthnamesLong={Januar,Februar,M\u00E4rz,April,Mai,Juni,%
- Juli,August,September,Oktober,November,Dezember},
-monthnamesShort={Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,%
- Okt,Nov,Dez},
-\end{Verbatim}
-\item[] Again, always list January (\textsl{Januar}/\textsl{Jan}) and
- Sunday (\textsl{Sonntag}/\textsl{So}) first.
-\item \textbf{Positioning the floating window}.
- These keys determine the positioning of the floating windows when it
- opens. The default is the center of the window (for versions > 9), for
- version~9, this key is ignored and the window appears in the upper-right
- of the application window. See the documentation of the \texttt{rmannot}
- package for more detail.
- \begin{itemize}
- \item \texttt{halign}: The horizontal positioning of the floating
- window, permissible values are \texttt{near}, \texttt{center}, and
- \texttt{far}. The default is \texttt{center}.
- \item \texttt{valign}: The vertical positioning of the floating
- window, permissible values are \texttt{near}, \texttt{center}, and
- \texttt{far}. The default is \texttt{center}.
- \item \texttt{hoffset}: The amount of horizontal offset from the initial horizontal
- alignment (\texttt{halign}). See the documentation of the
- \texttt{rmannot} package for more detail. Measured in default user space
- units (pixels). The default is~0.
- \item \texttt{voffset}: The amount of vertical offset from the initial
- vertical alignment (\texttt{valign}). See the documentation of the
- \texttt{rmannot} package for more detail. Measured in default
- user space units (pixels). The default is~0.
- \end{itemize}
-\item \textbf{Setting the dimensions of the window.}
-\begin{itemize}
- \item \texttt{widthOfWindow}: The width of the floating window as
- measured in default user space units (pixels). The default
- for this package is~180.
- \item \texttt{heightOfWindow}: The height of the floating window as
- measured in default user space units (pixels). The default
- for this package is~180.
-\end{itemize}
-\end{itemize}
-Options can be bundled into a command and passed as the first argument, as this example
-of the German calendar illustrates.
-
-\newcommand{\germanDates}
-{%
-% formatstring=DD.MM.YYYY,
- formatstring={EEEE, DD. MMMM YYYY},
- daynames={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnames={Jan,Febr,Mrz,Apr,Mai,Jun,Jul,Aug,Sept,%
- Okt,Nov,Dez},
- daynamesLong={Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,%
- Freitag,Samstag},
- daynamesShort={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnamesLong={Januar,Februar,M\u00E4rz,April,Mai,Juni,Juli,%
- August,September,Oktober,November,Dezember},
- monthnamesShort={Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,%
- Sep,Okt,Nov,Dez},
- firstday=1,
- widthOfWindow=200,heightOfWindow=200,
-}
-\begin{flushleft}%\previewtrue
-Wählen Sie ein Datum:\ \kern1bp\datepicker[\germanDates]{GERDate}{2in}{11bp}\quad
-(EEEE, DD. MMMM YYYY)
-\end{flushleft}
-
-The verbatim listing of this last field is given below.
-\begin{Verbatim}[xleftmargin=20pt,fontsize=\small]
-\newcommand{\germanDates}
-{%
-% formatstring=DD.MM.YYYY,
- formatstring={EEEE, DD. MMMM YYYY},
- daynames={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnames={Jan,Febr,Mrz,Apr,Mai,Jun,Jul,Aug,Sept,%
- Okt,Nov,Dez},
- daynamesLong={Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,%
- Freitag,Samstag},
- daynamesShort={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnamesLong={Januar,Februar,M\u00E4rz,April,Mai,Juni,Juli,%
- August,September,Oktober,November,Dezember},
- monthnamesShort={Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,%
- Sep,Okt,Nov,Dez},
- firstday=1,
- widthOfWindow=200,heightOfWindow=200
-}
-\begin{flushleft}
-Wählen Sie ein Datum:\ \kern1bp
-\datepicker[\germanDates]{GERDate}{2in}{11bp}\quad(EEEE, DD. MMMM YYYY)
-\end{flushleft}
-\end{Verbatim}
-
-\subsection{Commands for the preamble or the body}\label{s:PB}
-
-\def\lp{(}\def\rp{)}
-
-There are a few other commands to mention, the declaration or definition take effect
-with the next date picker command \cs{datepicker}.
-\bVerb\takeMeasure{\string\renewcommand\darg{\string\pickersep}\darg{\meta{length}}}%
-\setlength\textscreenwidth{\bxSize-2\fboxsep}%
-\def\1{\rlap{\hspace*{\textscreenwidth}\quad\normalfont(\texttt{3pt}\normalfont)}}%
-\def\2{\rlap{\hspace*{\textscreenwidth}\quad\normalfont(\texttt{10pt}\normalfont)}}%
-\def\3{\rlap{\hspace*{\textscreenwidth}\quad\normalfont(\texttt{12pt}\normalfont)}}%
-\takeMeasure{\string\renewcommand\darg{\string\pickersep}\darg{\meta{length}}%
-\quad\normalfont({\texttt{12bp}\normalfont)}}%
-\begin{dCmd}[commandchars=!()]{\bxSize}
-\dppToolTip{!meta(text)}
-\pickerOpts{!meta(key-values)}
-\pickerInputOpts{!meta(key-values)}
-!1\renewcommand{\pickersep}{!meta(length)}
-!2\pickerIconWidth{!meta(length)}
-!3\pickerIconHeight{!meta(length)}
-\end{dCmd}
-\endgroup\noindent
-The \cs{dppToolTip}\DM{dppToolTip} command is used to create a tool tip, text the user sees when
-he/she rolls over the push button icon. The default is
-\begin{Verbatim}[xleftmargin=20pt,commandchars=!()]
-\dppToolTip{Date Picker\n Click to toggle open and close\n
- Shift-click to clear and close}
-\end{Verbatim}
-When the user click on the icon, and the calendar is not open, the floating window opens.
-If the window is open and the user clicks on the icon, the window is closed. If the user
-shift-clicks and the window, the date field is cleared and the window is closed, if open.
-
-The \cs{pickerOpts}\DM{pickerOpts} command lets you
-pass additional options to the RMAs created by this package. The default
-is \cs{pickerOpts\darg{}}. See the documentation of the \pkg{rmannot}
-package for more details.
-
-The \cs{pickerInputOpts}\DM{pickerInputOpts} allows
-you to pass additional options to the input text field. The default is
-\cs{pickerInputOpts\darg{}}. See the documentation of the \pkg{eforms}
-package for details. We illustrate this last feature:
-\begin{quote}
- \pickerInputOpts{\BC{red}\textColor{blue}\Q{1}}%
- Pick a date: \kern1bp\datepicker{PickADate}{1in}{11bp}\\[3bp]
- \phantom{Enter a date:} \kern1bp\verb!\datepicker{PickADate}{1in}{11bp}!
-\end{quote}
-\begin{Verbatim}[xleftmargin=20pt]
-\pickerInputOpts{\BC{red}\textColor{blue}\Q{1}}%
-Pick a date: \kern1bp\datepicker{PickADate}{1in}{11bp}
-\end{Verbatim}
-Here, we use a red boundary, blue text color, and center the date.
-
-Any changes to \cs{pickerOpts} and \cs{pickerInputOpts} are global unless expanded
-within a group. Of course, you can bring these options back to their defaults by expanding
-\cs{pickerOpts\darg{}} and \cs{pickerInputOpts\darg{}}.
-
-The command \cs{pickersep}\DM{pickersep} sets the amount spacing between the right edge of the input
-text field and the left edge of the picker push button. The default is \texttt{3bp}.
-
-Finally, the command declarations, \cs{pickerIconWidth}\DM{pickerIconWidth} and
-\cs{pickerIconHeight}\DM{pickerIconHeight}, determine the width and the height of the date
-picker icon. The defaults for are shown in parentheses above.
-
-
-\newtopic\noindent
-That's all for now, I simply must get back to my retirement. \dps
-
-\end{document}
diff --git a/macros/latex/contrib/datepicker-pro/dp-pro.cfg b/macros/latex/contrib/datepicker-pro/dp-pro.cfg
deleted file mode 100644
index 9b1fce47f4..0000000000
--- a/macros/latex/contrib/datepicker-pro/dp-pro.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-%
-% datepicker-pro configuration file,
-% uncomment the lines below and edit appropriately
-%
-%\definePath{\dppPath}{C:/Users/Public/Documents/My TeX Files/%
-% tex/latex/aeb/aebpro/datepicker-pro/swf}
-\endinput
diff --git a/macros/latex/contrib/datepicker-pro/examples/datepicker_tst.pdf b/macros/latex/contrib/datepicker-pro/examples/datepicker_tst.pdf
deleted file mode 100644
index e297fcbdaf..0000000000
--- a/macros/latex/contrib/datepicker-pro/examples/datepicker_tst.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/examples/datepicker_tst.tex b/macros/latex/contrib/datepicker-pro/examples/datepicker_tst.tex
deleted file mode 100644
index 58911a37aa..0000000000
--- a/macros/latex/contrib/datepicker-pro/examples/datepicker_tst.tex
+++ /dev/null
@@ -1,106 +0,0 @@
-\documentclass{article}
-\usepackage[%
- web={extended,tight*,usesf},
- eforms,graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{fancyvrb}
-\usepackage{rmannot}
-\usepackage{datepicker-pro}
-
-\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom
-\screensize{5in}{5.5in} % height,width dimensions
-
-\renewcommand{\hproportionwebtitle}{.5}
-
-\iconBenOpts{\F{-\FPrint}}
-
-\DeclareDocInfo
-{
- title=The datepicker-pro Package\texorpdfstring{\\[6pt]}{: }A date picker built by Adobe Flash Builder and AeB Pro,
- author=D. P. Story,
- university=Acro\negthinspace\TeX.Net,
- email=dpstory@acrotex.net,
- subject={Demo of the datepicker-pro package, SWF, rmannot, aeb\_pro, AcroTeX},
- keywords={Adobe Acrobat;JavaScript;Adobe Flash Builder;Flex;ActionScript},
- talksite=\url{http://www.acrotex.net},
- talkdate={\today},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL=http://www.acrotex.net
-}
-\talkdateLabel{Published:}
-
-\parindent=0pt\parskip6pt\pagestyle{empty}
-
-\useFLEXVer{3} % 3 or 4
-% This path has been move to the dp-pro.cfg configuration file. Find
-% that file in the top level of this distribution and edit it to reflect
-% the path to the SWF folder of this distribution, it must be an absolution path.
-%\definePath{\dppPath}{C:/Users/Public/Documents/My TeX Files/%
-% tex/latex/aeb/aebpro/datepicker-pro/swf}
-\setpickerIcon{../icons/dp_icon1.pdf}{PickADate}
-\setpickerIcon{../icons/dp_icon2.pdf}{GERDate}
-
-\begin{document}
-
-\maketitle
-
-In this short demonstration file, we present two date field styles, one for the U.S.\
-and the another for German.
-
-\begin{flushleft}
-U.S.-style: Pick a date:\ \kern1bp\datepicker{PickADate}{1in}{11bp}\quad
-(MM/DD/YYYY)
-\end{flushleft}
-This is the default style: \verb!\datepicker{PickADate}{1in}{11bp}!
-
-\newcommand{\germanDates}
-{%
-% formatstring=DD.MM.YYYY,
- formatstring={EEEE, DD. MMMM YYYY},
- daynames={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnames={Jan,Febr,Mrz,Apr,Mai,Jun,Jul,Aug,Sept,%
- Okt,Nov,Dez},
- daynamesLong={Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,%
- Freitag,Samstag},
- daynamesShort={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnamesLong={Januar,Februar,M\u00E4rz,April,Mai,Juni,Juli,%
- August,September,Oktober,November,Dezember},
- monthnamesShort={Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,%
- Sep,Okt,Nov,Dez},
- firstday=1,
- widthOfWindow=200,
- heightOfWindow=200,
- voffset=-100
-}
-
-% Di, 13. August 2013
-
-\begin{flushleft}
-German-style: Pick a date:\ \kern1bp\datepicker[\germanDates]{GERDate}{2in}{11bp}\quad
-%(EEEE, DD. MMMM YYYY)
-\end{flushleft}
-
-\end{document}
-
-
-A custom style, the verbatim listing of this field is given below:
-\begin{Verbatim}[xleftmargin=\leftmargini,fontsize=\small,commandchars=!()]
-\newcommand{\germanDates}
-{%
- formatstring={EEEE, DD. MMMM YYYY},
- daynames={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnames={Jan,Febr,Mrz,Apr,Mai,Jun,Jul,Aug,Sept,Okt,Nov,Dez},
- daynamesLong={Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,
- Freitag,Samstag},
- daynamesShort={So,Mo,Di,Mi,Do,Fr,Sa},
- monthnamesLong={Januar,Februar,M!"(a)rz,April,Mai,Juni,Juli,
- August,September,Oktober,November,Dezember},
- monthnamesShort={Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,
- Okt,Nov,Dez},
- firstday=1,widthOfWindow=200,heightOfWindow=200
-}
-\datepicker[\germanDates]{GERDate}{2in}{11bp}
-\end{Verbatim}
-\end{document}
-
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon1.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon1.pdf
deleted file mode 100644
index e26eeadcce..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon1.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon2.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon2.pdf
deleted file mode 100644
index 682b8b9a25..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon2.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon3.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon3.pdf
deleted file mode 100644
index 2862848ab2..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon3.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon4.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon4.pdf
deleted file mode 100644
index 7aa21bc7f3..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon4.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon5.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon5.pdf
deleted file mode 100644
index fa85ae13ae..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon5.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon6.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon6.pdf
deleted file mode 100644
index a89dc7da09..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon6.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/icons/dp_icon7.pdf b/macros/latex/contrib/datepicker-pro/icons/dp_icon7.pdf
deleted file mode 100644
index 5ffc168b7e..0000000000
--- a/macros/latex/contrib/datepicker-pro/icons/dp_icon7.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/joboptions/Standard_transparency.joboptions b/macros/latex/contrib/datepicker-pro/joboptions/Standard_transparency.joboptions
deleted file mode 100644
index b2d9d26786..0000000000
--- a/macros/latex/contrib/datepicker-pro/joboptions/Standard_transparency.joboptions
+++ /dev/null
@@ -1,232 +0,0 @@
-<<
- /ASCII85EncodePages false
- /AllowTransparency true
- /AutoPositionEPSFiles true
- /AutoRotatePages /All
- /Binding /Left
- /CalGrayProfile (Gray Gamma 2.2)
- /CalRGBProfile (sRGB IEC61966-2.1)
- /CalCMYKProfile (U.S. Web Coated \050SWOP\051 v2)
- /sRGBProfile (sRGB IEC61966-2.1)
- /CannotEmbedFontPolicy /Warning
- /CompatibilityLevel 1.4
- /CompressObjects /Tags
- /CompressPages true
- /ConvertImagesToIndexed true
- /PassThroughJPEGImages true
- /CreateJobTicket false
- /DefaultRenderingIntent /Default
- /DetectBlends true
- /DetectCurves 0.1000
- /ColorConversionStrategy /sRGB
- /DoThumbnails false
- /EmbedAllFonts true
- /EmbedOpenType false
- /ParseICCProfilesInComments true
- /EmbedJobOptions false
- /DSCReportingLevel 0
- /EmitDSCWarnings false
- /EndPage -1
- /ImageMemory 1048576
- /LockDistillerParams false
- /MaxSubsetPct 100
- /Optimize true
- /OPM 1
- /ParseDSCComments true
- /ParseDSCCommentsForDocInfo true
- /PreserveCopyPage true
- /PreserveDICMYKValues true
- /PreserveEPSInfo false
- /PreserveFlatness true
- /PreserveHalftoneInfo false
- /PreserveOPIComments false
- /PreserveOverprintSettings true
- /StartPage 1
- /SubsetFonts true
- /TransferFunctionInfo /Apply
- /UCRandBGInfo /Remove
- /UsePrologue false
- /ColorSettingsFile ()
- /AlwaysEmbed [ true
- ]
- /NeverEmbed [ true
- /Arial-Black
- /Arial-BlackItalic
- /Arial-BoldItalicMT
- /Arial-BoldMT
- /Arial-ItalicMT
- /ArialMT
- /ArialNarrow
- /ArialNarrow-Bold
- /ArialNarrow-BoldItalic
- /ArialNarrow-Italic
- /ArialUnicodeMS
- /CenturyGothic
- /CenturyGothic-Bold
- /CenturyGothic-BoldItalic
- /CenturyGothic-Italic
- /CourierNewPS-BoldItalicMT
- /CourierNewPS-BoldMT
- /CourierNewPS-ItalicMT
- /CourierNewPSMT
- /Georgia
- /Georgia-Bold
- /Georgia-BoldItalic
- /Georgia-Italic
- /Impact
- /LucidaConsole
- /Tahoma
- /Tahoma-Bold
- /TimesNewRomanMT-ExtraBold
- /TimesNewRomanPS-BoldItalicMT
- /TimesNewRomanPS-BoldMT
- /TimesNewRomanPS-ItalicMT
- /TimesNewRomanPSMT
- /Trebuchet-BoldItalic
- /TrebuchetMS
- /TrebuchetMS-Bold
- /TrebuchetMS-Italic
- /Verdana
- /Verdana-Bold
- /Verdana-BoldItalic
- /Verdana-Italic
- ]
- /AntiAliasColorImages false
- /CropColorImages true
- /ColorImageMinResolution 150
- /ColorImageMinResolutionPolicy /OK
- /DownsampleColorImages true
- /ColorImageDownsampleType /Bicubic
- /ColorImageResolution 150
- /ColorImageDepth -1
- /ColorImageMinDownsampleDepth 1
- /ColorImageDownsampleThreshold 1.50000
- /EncodeColorImages true
- /ColorImageFilter /DCTEncode
- /AutoFilterColorImages true
- /ColorImageAutoFilterStrategy /JPEG
- /ColorACSImageDict <<
- /QFactor 0.76
- /HSamples [2 1 1 2] /VSamples [2 1 1 2]
- >>
- /ColorImageDict <<
- /QFactor 0.76
- /HSamples [2 1 1 2] /VSamples [2 1 1 2]
- >>
- /JPEG2000ColorACSImageDict <<
- /TileWidth 256
- /TileHeight 256
- /Quality 15
- >>
- /JPEG2000ColorImageDict <<
- /TileWidth 256
- /TileHeight 256
- /Quality 15
- >>
- /AntiAliasGrayImages false
- /CropGrayImages true
- /GrayImageMinResolution 150
- /GrayImageMinResolutionPolicy /OK
- /DownsampleGrayImages true
- /GrayImageDownsampleType /Bicubic
- /GrayImageResolution 150
- /GrayImageDepth -1
- /GrayImageMinDownsampleDepth 2
- /GrayImageDownsampleThreshold 1.50000
- /EncodeGrayImages true
- /GrayImageFilter /DCTEncode
- /AutoFilterGrayImages true
- /GrayImageAutoFilterStrategy /JPEG
- /GrayACSImageDict <<
- /QFactor 0.76
- /HSamples [2 1 1 2] /VSamples [2 1 1 2]
- >>
- /GrayImageDict <<
- /QFactor 0.76
- /HSamples [2 1 1 2] /VSamples [2 1 1 2]
- >>
- /JPEG2000GrayACSImageDict <<
- /TileWidth 256
- /TileHeight 256
- /Quality 15
- >>
- /JPEG2000GrayImageDict <<
- /TileWidth 256
- /TileHeight 256
- /Quality 15
- >>
- /AntiAliasMonoImages false
- /CropMonoImages true
- /MonoImageMinResolution 1200
- /MonoImageMinResolutionPolicy /OK
- /DownsampleMonoImages true
- /MonoImageDownsampleType /Bicubic
- /MonoImageResolution 1200
- /MonoImageDepth -1
- /MonoImageDownsampleThreshold 1.50000
- /EncodeMonoImages true
- /MonoImageFilter /CCITTFaxEncode
- /MonoImageDict <<
- /K -1
- >>
- /AllowPSXObjects true
- /CheckCompliance [
- /None
- ]
- /PDFX1aCheck false
- /PDFX3Check false
- /PDFXCompliantPDFOnly false
- /PDFXNoTrimBoxError true
- /PDFXTrimBoxToMediaBoxOffset [
- 0.00000
- 0.00000
- 0.00000
- 0.00000
- ]
- /PDFXSetBleedBoxToMediaBox true
- /PDFXBleedBoxToTrimBoxOffset [
- 0.00000
- 0.00000
- 0.00000
- 0.00000
- ]
- /PDFXOutputIntentProfile (None)
- /PDFXOutputConditionIdentifier ()
- /PDFXOutputCondition ()
- /PDFXRegistryName ()
- /PDFXTrapped /False
-
- /CreateJDFFile false
- /Description <<
- /ARA <FEFF06270633062A062E062F0645002006470630064700200627064406250639062F0627062F0627062A002006440625064606340627062100200648062B062706260642002000410064006F00620065002000500044004600200645062A064806270641064206290020064506390020064506420627064A064A0633002006390631063600200648063706280627063906290020062706440648062B0627062606420020062706440645062A062F062706480644062900200641064A00200645062C062706440627062A002006270644062306390645062706440020062706440645062E062A064406410629061B0020064A06450643064600200641062A062D00200648062B0627062606420020005000440046002006270644064506460634062306290020062806270633062A062E062F062706450020004100630072006F0062006100740020064800410064006F006200650020005200650061006400650072002006250635062F0627063100200035002E0030002006480627064406250635062F062706310627062A0020062706440623062D062F062B002E>
- /CHS <FEFF4f7f75288fd94e9b8bbe5b9a521b5efa7684002000410064006f006200650020005000440046002065876863900275284e8e55464e1a65876863768467e5770b548c62535370300260a853ef4ee54f7f75280020004100630072006f0062006100740020548c002000410064006f00620065002000520065006100640065007200200035002e003000204ee553ca66f49ad87248672c676562535f00521b5efa768400200050004400460020658768633002>
- /CHT <FEFF4f7f752890194e9b8a2d7f6e5efa7acb7684002000410064006f006200650020005000440046002065874ef69069752865bc666e901a554652d965874ef6768467e5770b548c52175370300260a853ef4ee54f7f75280020004100630072006f0062006100740020548c002000410064006f00620065002000520065006100640065007200200035002e003000204ee553ca66f49ad87248672c4f86958b555f5df25efa7acb76840020005000440046002065874ef63002>
- /CZE <FEFF005400610074006f0020006e006100730074006100760065006e00ed00200070006f0075017e0069006a007400650020006b0020007600790074007600e101590065006e00ed00200064006f006b0075006d0065006e0074016f002000410064006f006200650020005000440046002000760068006f0064006e00fd00630068002000700072006f002000730070006f006c00650068006c0069007600e90020007a006f006200720061007a006f007600e1006e00ed002000610020007400690073006b0020006f006200630068006f0064006e00ed0063006800200064006f006b0075006d0065006e0074016f002e002000200056007900740076006f01590065006e00e900200064006f006b0075006d0065006e007400790020005000440046002000620075006400650020006d006f017e006e00e90020006f007400650076015900ed007400200076002000700072006f006700720061006d0065006300680020004100630072006f00620061007400200061002000410064006f00620065002000520065006100640065007200200035002e0030002000610020006e006f0076011b006a016100ed00630068002e>
- /DAN <FEFF004200720075006700200069006e0064007300740069006c006c0069006e006700650072006e0065002000740069006c0020006100740020006f007000720065007400740065002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e007400650072002c0020006400650072002000650067006e006500720020007300690067002000740069006c00200064006500740061006c006a006500720065007400200073006b00e60072006d007600690073006e0069006e00670020006f00670020007500640073006b007200690076006e0069006e006700200061006600200066006f0072007200650074006e0069006e006700730064006f006b0075006d0065006e007400650072002e0020004400650020006f007000720065007400740065006400650020005000440046002d0064006f006b0075006d0065006e0074006500720020006b0061006e002000e50062006e00650073002000690020004100630072006f00620061007400200065006c006c006500720020004100630072006f006200610074002000520065006100640065007200200035002e00300020006f00670020006e0079006500720065002e>
- /DEU <FEFF00560065007200770065006e00640065006e0020005300690065002000640069006500730065002000450069006e007300740065006c006c0075006e00670065006e0020007a0075006d002000450072007300740065006c006c0065006e00200076006f006e002000410064006f006200650020005000440046002d0044006f006b0075006d0065006e00740065006e002c00200075006d002000650069006e00650020007a0075007600650072006c00e40073007300690067006500200041006e007a006500690067006500200075006e00640020004100750073006700610062006500200076006f006e00200047006500730063006800e40066007400730064006f006b0075006d0065006e00740065006e0020007a0075002000650072007a00690065006c0065006e002e00200044006900650020005000440046002d0044006f006b0075006d0065006e007400650020006b00f6006e006e0065006e0020006d006900740020004100630072006f00620061007400200075006e0064002000520065006100640065007200200035002e003000200075006e00640020006800f600680065007200200067006500f600660066006e00650074002000770065007200640065006e002e>
- /ESP <FEFF005500740069006c0069006300650020006500730074006100200063006f006e0066006900670075007200610063006900f3006e0020007000610072006100200063007200650061007200200064006f00630075006d0065006e0074006f0073002000640065002000410064006f00620065002000500044004600200061006400650063007500610064006f007300200070006100720061002000760069007300750061006c0069007a00610063006900f3006e0020006500200069006d0070007200650073006900f3006e00200064006500200063006f006e006600690061006e007a006100200064006500200064006f00630075006d0065006e0074006f007300200063006f006d00650072006300690061006c00650073002e002000530065002000700075006500640065006e00200061006200720069007200200064006f00630075006d0065006e0074006f00730020005000440046002000630072006500610064006f007300200063006f006e0020004100630072006f006200610074002c002000410064006f00620065002000520065006100640065007200200035002e003000200079002000760065007200730069006f006e0065007300200070006f00730074006500720069006f007200650073002e>
- /FRA <FEFF005500740069006c006900730065007a00200063006500730020006f007000740069006f006e00730020006100660069006e00200064006500200063007200e900650072002000640065007300200064006f00630075006d0065006e00740073002000410064006f006200650020005000440046002000700072006f00660065007300730069006f006e006e0065006c007300200066006900610062006c0065007300200070006f007500720020006c0061002000760069007300750061006c00690073006100740069006f006e0020006500740020006c00270069006d007000720065007300730069006f006e002e0020004c0065007300200064006f00630075006d0065006e00740073002000500044004600200063007200e900e90073002000700065007500760065006e0074002000ea0074007200650020006f007500760065007200740073002000640061006e00730020004100630072006f006200610074002c002000610069006e00730069002000710075002700410064006f00620065002000520065006100640065007200200035002e0030002000650074002000760065007200730069006f006e007300200075006c007400e90072006900650075007200650073002e>
- /GRE <FEFF03a703c103b703c303b903bc03bf03c003bf03b903ae03c303c403b5002003b103c503c403ad03c2002003c403b903c2002003c103c503b803bc03af03c303b503b903c2002003b303b903b1002003bd03b1002003b403b703bc03b903bf03c503c103b303ae03c303b503c403b5002003ad03b303b303c103b103c603b1002000410064006f006200650020005000440046002003ba03b103c403ac03bb03bb03b703bb03b1002003b303b903b1002003b103be03b903cc03c003b903c303c403b7002003c003c103bf03b203bf03bb03ae002003ba03b103b9002003b503ba03c403cd03c003c903c303b7002003b503c003b903c703b503b903c103b703bc03b103c403b903ba03ce03bd002003b503b303b303c103ac03c603c903bd002e0020002003a403b10020005000440046002003ad03b303b303c103b103c603b1002003c003bf03c5002003ad03c703b503c403b5002003b403b703bc03b903bf03c503c103b303ae03c303b503b9002003bc03c003bf03c103bf03cd03bd002003bd03b1002003b103bd03bf03b903c703c403bf03cd03bd002003bc03b5002003c403bf0020004100630072006f006200610074002c002003c403bf002000410064006f00620065002000520065006100640065007200200035002e0030002003ba03b103b9002003bc03b503c403b103b303b503bd03ad03c303c403b503c103b503c2002003b503ba03b403cc03c303b503b903c2002e>
- /HEB <FEFF05D405E905EA05DE05E905D5002005D105D405D205D305E805D505EA002005D005DC05D4002005DB05D305D9002005DC05D905E605D505E8002005DE05E105DE05DB05D9002000410064006F006200650020005000440046002005E205D105D505E8002005D405E605D205D4002005D505D405D305E405E105D4002005D005DE05D905E005D4002005E905DC002005DE05E105DE05DB05D905DD002005E205E105E705D905D905DD002E002005DE05E105DE05DB05D90020005000440046002005E905E005D505E605E805D5002005E005D905EA05E005D905DD002005DC05E405EA05D905D705D4002005D105D005DE05E605E205D505EA0020004100630072006F006200610074002005D5002D00410064006F00620065002000520065006100640065007200200035002E0030002005D505D205E805E105D005D505EA002005DE05EA05E705D305DE05D505EA002005D905D505EA05E8002E05D905D505EA05E8002E002D0033002C002005E205D905D905E005D5002005D105DE05D305E805D905DA002005DC05DE05E905EA05DE05E9002005E905DC0020004100630072006F006200610074002E002005DE05E105DE05DB05D90020005000440046002005E905E005D505E605E805D5002005E005D905EA05E005D905DD002005DC05E405EA05D905D705D4002005D105D005DE05E605E205D505EA0020004100630072006F006200610074002005D5002D00410064006F00620065002000520065006100640065007200200035002E0030002005D505D205E805E105D005D505EA002005DE05EA05E705D305DE05D505EA002005D905D505EA05E8002E>
- /HRV (Za stvaranje Adobe PDF dokumenata pogodnih za pouzdani prikaz i ispis poslovnih dokumenata koristite ove postavke. Stvoreni PDF dokumenti mogu se otvoriti Acrobat i Adobe Reader 5.0 i kasnijim verzijama.)
- /HUN <FEFF00410020006800690076006100740061006c006f007300200064006f006b0075006d0065006e00740075006d006f006b0020006d00650067006200ed007a00680061007400f30020006d0065006700740065006b0069006e007400e9007300e900720065002000e900730020006e0079006f006d00740061007400e1007300e10072006100200073007a00e1006e0074002000410064006f00620065002000500044004600200064006f006b0075006d0065006e00740075006d006f006b0061007400200065007a0065006b006b0065006c0020006100200062006500e1006c006c00ed007400e10073006f006b006b0061006c00200068006f007a006800610074006a00610020006c00e9007400720065002e0020002000410020006c00e90074007200650068006f007a006f00740074002000500044004600200064006f006b0075006d0065006e00740075006d006f006b00200061007a0020004100630072006f006200610074002000e9007300200061007a002000410064006f00620065002000520065006100640065007200200035002e0030002c0020007600610067007900200061007a002000610074007400f3006c0020006b00e9007301510062006200690020007600650072007a006900f3006b006b0061006c0020006e00790069007400680061007400f3006b0020006d00650067002e>
- /ITA (Utilizzare queste impostazioni per creare documenti Adobe PDF adatti per visualizzare e stampare documenti aziendali in modo affidabile. I documenti PDF creati possono essere aperti con Acrobat e Adobe Reader 5.0 e versioni successive.)
- /JPN <FEFF30d330b830cd30b9658766f8306e8868793a304a3088307353705237306b90693057305f002000410064006f0062006500200050004400460020658766f8306e4f5c6210306b4f7f75283057307e305930023053306e8a2d5b9a30674f5c62103055308c305f0020005000440046002030d530a130a430eb306f3001004100630072006f0062006100740020304a30883073002000410064006f00620065002000520065006100640065007200200035002e003000204ee5964d3067958b304f30533068304c3067304d307e305930023053306e8a2d5b9a3067306f30d530a930f330c8306e57cb30818fbc307f3092884c3044307e30593002>
- /KOR <FEFFc7740020c124c815c7440020c0acc6a9d558c5ec0020be44c988b2c8c2a40020bb38c11cb97c0020c548c815c801c73cb85c0020bcf4ace00020c778c1c4d558b2940020b3700020ac00c7a50020c801d569d55c002000410064006f0062006500200050004400460020bb38c11cb97c0020c791c131d569b2c8b2e4002e0020c774b807ac8c0020c791c131b41c00200050004400460020bb38c11cb2940020004100630072006f0062006100740020bc0f002000410064006f00620065002000520065006100640065007200200035002e00300020c774c0c1c5d0c11c0020c5f40020c2180020c788c2b5b2c8b2e4002e>
- /NLD (Gebruik deze instellingen om Adobe PDF-documenten te maken waarmee zakelijke documenten betrouwbaar kunnen worden weergegeven en afgedrukt. De gemaakte PDF-documenten kunnen worden geopend met Acrobat en Adobe Reader 5.0 en hoger.)
- /NOR <FEFF004200720075006b00200064006900730073006500200069006e006e007300740069006c006c0069006e00670065006e0065002000740069006c002000e50020006f0070007000720065007400740065002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e00740065007200200073006f006d002000650072002000650067006e0065007400200066006f00720020007000e5006c006900740065006c006900670020007600690073006e0069006e00670020006f00670020007500740073006b007200690066007400200061007600200066006f0072007200650074006e0069006e006700730064006f006b0075006d0065006e007400650072002e0020005000440046002d0064006f006b0075006d0065006e00740065006e00650020006b0061006e002000e50070006e00650073002000690020004100630072006f00620061007400200065006c006c00650072002000410064006f00620065002000520065006100640065007200200035002e003000200065006c006c00650072002e>
- /POL <FEFF0055007300740061007700690065006e0069006100200064006f002000740077006f0072007a0065006e0069006100200064006f006b0075006d0065006e007400f300770020005000440046002000700072007a0065007a006e00610063007a006f006e00790063006800200064006f0020006e00690065007a00610077006f0064006e00650067006f002000770079015b0077006900650074006c0061006e00690061002000690020006400720075006b006f00770061006e0069006100200064006f006b0075006d0065006e007400f300770020006600690072006d006f0077007900630068002e002000200044006f006b0075006d0065006e0074007900200050004400460020006d006f017c006e00610020006f007400770069006500720061010700200077002000700072006f006700720061006d006900650020004100630072006f00620061007400200069002000410064006f00620065002000520065006100640065007200200035002e0030002000690020006e006f00770073007a0079006d002e>
- /PTB <FEFF005500740069006c0069007a006500200065007300730061007300200063006f006e00660069006700750072006100e700f50065007300200064006500200066006f0072006d00610020006100200063007200690061007200200064006f00630075006d0065006e0074006f0073002000410064006f00620065002000500044004600200061006400650071007500610064006f00730020007000610072006100200061002000760069007300750061006c0069007a006100e700e3006f002000650020006100200069006d0070007200650073007300e3006f00200063006f006e0066006900e1007600650069007300200064006500200064006f00630075006d0065006e0074006f007300200063006f006d0065007200630069006100690073002e0020004f007300200064006f00630075006d0065006e0074006f00730020005000440046002000630072006900610064006f007300200070006f00640065006d0020007300650072002000610062006500720074006f007300200063006f006d0020006f0020004100630072006f006200610074002000650020006f002000410064006f00620065002000520065006100640065007200200035002e0030002000650020007600650072007300f50065007300200070006f00730074006500720069006f007200650073002e>
- /RUM <FEFF005500740069006c0069007a00610163006900200061006300650073007400650020007300650074010300720069002000700065006e007400720075002000610020006300720065006100200064006f00630075006d0065006e00740065002000410064006f006200650020005000440046002000610064006500630076006100740065002000700065006e007400720075002000760069007a00750061006c0069007a00610072006500610020015f006900200074006900700103007200690072006500610020006c0061002000630061006c006900740061007400650020007300750070006500720069006f0061007201030020006100200064006f00630075006d0065006e00740065006c006f007200200064006500200061006600610063006500720069002e002000200044006f00630075006d0065006e00740065006c00650020005000440046002000630072006500610074006500200070006f00740020006600690020006400650073006300680069007300650020006300750020004100630072006f006200610074002c002000410064006f00620065002000520065006100640065007200200035002e00300020015f00690020007600650072007300690075006e0069006c006500200075006c0074006500720069006f006100720065002e>
- /RUS <FEFF04180441043f043e043b044c04370443043904420435002004340430043d043d044b04350020043d0430044104420440043e0439043a043800200434043b044f00200441043e043704340430043d0438044f00200434043e043a0443043c0435043d0442043e0432002000410064006f006200650020005000440046002c0020043f043e04340445043e0434044f04490438044500200434043b044f0020043d0430043404350436043d043e0433043e0020043f0440043e0441043c043e044204400430002004380020043f04350447043004420438002004340435043b043e0432044b044500200434043e043a0443043c0435043d0442043e0432002e002000200421043e043704340430043d043d044b04350020005000440046002d0434043e043a0443043c0435043d0442044b0020043c043e0436043d043e0020043e0442043a0440044b043204300442044c002004410020043f043e043c043e0449044c044e0020004100630072006f00620061007400200438002000410064006f00620065002000520065006100640065007200200035002e00300020043800200431043e043b043504350020043f043e04370434043d043804450020043204350440044104380439002e>
- /SLV <FEFF005400650020006e006100730074006100760069007400760065002000750070006f0072006100620069007400650020007a00610020007500730074007600610072006a0061006e006a006500200064006f006b0075006d0065006e0074006f0076002000410064006f006200650020005000440046002c0020007000720069006d00650072006e006900680020007a00610020007a0061006e00650073006c006a00690076006f0020006f0067006c00650064006f00760061006e006a006500200069006e0020007400690073006b0061006e006a006500200070006f0073006c006f0076006e0069006800200064006f006b0075006d0065006e0074006f0076002e00200020005500730074007600610072006a0065006e006500200064006f006b0075006d0065006e0074006500200050004400460020006a00650020006d006f0067006f010d00650020006f0064007000720065007400690020007a0020004100630072006f00620061007400200069006e002000410064006f00620065002000520065006100640065007200200035002e003000200069006e0020006e006f00760065006a01610069006d002e>
- /SUO <FEFF004b00e40079007400e40020006e00e40069007400e4002000610073006500740075006b007300690061002c0020006b0075006e0020006c0075006f0074002000410064006f0062006500200050004400460020002d0064006f006b0075006d0065006e007400740065006a0061002c0020006a006f0074006b006100200073006f0070006900760061007400200079007200690074007900730061007300690061006b00690072006a006f006a0065006e0020006c0075006f00740065007400740061007600610061006e0020006e00e400790074007400e4006d0069007300650065006e0020006a0061002000740075006c006f007300740061006d0069007300650065006e002e0020004c0075006f0064007500740020005000440046002d0064006f006b0075006d0065006e00740069007400200076006f0069006400610061006e0020006100760061007400610020004100630072006f0062006100740069006c006c00610020006a0061002000410064006f00620065002000520065006100640065007200200035002e0030003a006c006c00610020006a006100200075007500640065006d006d0069006c006c0061002e>
- /SVE <FEFF0041006e007600e4006e00640020006400650020006800e4007200200069006e0073007400e4006c006c006e0069006e006700610072006e00610020006f006d002000640075002000760069006c006c00200073006b006100700061002000410064006f006200650020005000440046002d0064006f006b0075006d0065006e007400200073006f006d00200070006100730073006100720020006600f60072002000740069006c006c006600f60072006c00690074006c006900670020007600690073006e0069006e00670020006f006300680020007500740073006b007200690066007400650072002000610076002000610066006600e4007200730064006f006b0075006d0065006e0074002e002000200053006b006100700061006400650020005000440046002d0064006f006b0075006d0065006e00740020006b0061006e002000f600700070006e00610073002000690020004100630072006f0062006100740020006f00630068002000410064006f00620065002000520065006100640065007200200035002e00300020006f00630068002000730065006e006100720065002e>
- /TUR <FEFF005400690063006100720069002000620065006c00670065006c006500720069006e0020006700fc00760065006e0069006c0069007200200062006900720020015f0065006b0069006c006400650020006700f6007200fc006e007400fc006c0065006e006d006500730069002000760065002000790061007a0064013100720131006c006d006100730131006e006100200075007900670075006e002000410064006f006200650020005000440046002000620065006c00670065006c0065007200690020006f006c0075015f007400750072006d0061006b0020006900e70069006e00200062007500200061007900610072006c0061007201310020006b0075006c006c0061006e0131006e002e00200020004f006c0075015f0074007500720075006c0061006e0020005000440046002000620065006c00670065006c0065007200690020004100630072006f006200610074002000760065002000410064006f00620065002000520065006100640065007200200035002e003000200076006500200073006f006e0072006100730131006e00640061006b00690020007300fc007200fc006d006c00650072006c00650020006100e70131006c006100620069006c00690072002e>
- /ENU (Use these settings to create Adobe PDF documents suitable for reliable viewing and printing of business documents. Created PDF documents can be opened with Acrobat and Adobe Reader 5.0 and later.)
- >>
->> setdistillerparams
-<<
- /HWResolution [600 600]
- /PageSize [612.000 792.000]
->> setpagedevice
diff --git a/macros/latex/contrib/datepicker-pro/swf/datepicker3.swf b/macros/latex/contrib/datepicker-pro/swf/datepicker3.swf
deleted file mode 100644
index 9a29f273ee..0000000000
--- a/macros/latex/contrib/datepicker-pro/swf/datepicker3.swf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/datepicker-pro/swf/datepicker4.swf b/macros/latex/contrib/datepicker-pro/swf/datepicker4.swf
deleted file mode 100644
index e3363da55f..0000000000
--- a/macros/latex/contrib/datepicker-pro/swf/datepicker4.swf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md
index bc09045c8f..6d9dbaab14 100644
--- a/macros/latex/contrib/l3backend/CHANGELOG.md
+++ b/macros/latex/contrib/l3backend/CHANGELOG.md
@@ -6,6 +6,12 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2020-08-07]
+
+### Changed
+- Color selection implementation
+- Improved support for Separation colors
+
## [2020-06-29]
### Fixed
@@ -96,7 +102,8 @@ this project uses date-based 'snapshot' version identifiers.
- Include `l3backend` in file names
- Moved backend code to internal for each 'parent' module
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-29...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-08-07...HEAD
+[2020-08-07]: https://github.com/latex3/latex3/compare/2020-06-29...2020-08-07
[2020-06-29]: https://github.com/latex3/latex3/compare/2020-06-23...2020-06-29
[2020-06-23]: https://github.com/latex3/latex3/compare/2020-06-18...2020-06-23
[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18
diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md
index 1d298fabdf..a0ebb98003 100644
--- a/macros/latex/contrib/l3backend/README.md
+++ b/macros/latex/contrib/l3backend/README.md
@@ -1,7 +1,7 @@
LaTeX3 Backend Drivers
======================
-Release 2020-06-29
+Release 2020-08-07
This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
diff --git a/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx
index 00367dea5f..209b2a648f 100644
--- a/macros/latex/contrib/l3backend/l3backend-basics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3backend-basics} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% Whilst there is a reasonable amount of code overlap between backends,
@@ -71,23 +71,23 @@
%<*package>
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2020-06-29}{}
+ {l3backend-dvipdfmx.def}{2020-08-07}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2020-06-29}{}
+ {l3backend-dvips.def}{2020-08-07}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2020-06-29}{}
+ {l3backend-dvisvgm.def}{2020-08-07}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*pdfmode>
- {l3backend-pdfmode.def}{2020-06-29}{}
+ {l3backend-pdfmode.def}{2020-08-07}{}
{L3 backend support: PDF mode}
%</pdfmode>
%<*xdvipdfmx>
- {l3backend-xdvipdfmx.def}{2020-06-29}{}
+ {l3backend-xdvipdfmx.def}{2020-08-07}{}
{L3 backend support: xdvipdfmx}
%</xdvipdfmx>
%</package>
@@ -358,36 +358,71 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\__kernel_backend_scope_begin:, \__kernel_backend_scope_end:}
-% A scope in SVG terms is slightly different to the other backends as
-% operations have to be \enquote{tied} to these not simply inside them.
+% \begin{variable}{\g__kernel_backend_scope_int, \l__kernel_backend_scope_int}
+% In SVG, we need to track scope nesting as properties attach to scopes; that
+% requires a pair of \texttt{int} registers.
% \begin{macrocode}
-\cs_new_protected:Npn \__kernel_backend_scope_begin:
- { \__kernel_backend_literal_svg:n { <g> } }
-\cs_new_protected:Npn \__kernel_backend_scope_end:
- { \__kernel_backend_literal_svg:n { </g> } }
+\int_new:N \g__kernel_backend_scope_int
+\int_new:N \l__kernel_backend_scope_int
% \end{macrocode}
-% \end{macro}
+% \end{variable}
%
+% \begin{macro}{\__kernel_backend_scope_begin:, \__kernel_backend_scope_end:}
% \begin{macro}{\__kernel_backend_scope_begin:n, \__kernel_backend_scope_begin:x}
-% In SVG transformations, clips and so on are attached directly to scopes so
-% we need a way or allowing for that. This is rather more useful than
-% \cs{__kernel_backend_scope_begin:} as a result.
-% No assumptions are made about the nature
-% of the scoped operation(s).
+% \begin{macro}{\__kernel_backend_scope:n, \__kernel_backend_scope:x}
+% In SVG, the need to attach concepts to a scope means we need to be sure we
+% will close all of the open scopes. That is easiest done if we only need
+% an outer \enquote{wrapper} \texttt{begin}/\texttt{end} pair, and within
+% that we apply operations as a simple scoped statements. To keep down the
+% non-productive groups, we also have a \texttt{begin} version that does take
+% an argument.
% \begin{macrocode}
+\cs_new_protected:Npn \__kernel_backend_scope_begin:
+ {
+ \__kernel_backend_literal_svg:n { <g> }
+ \int_set_eq:NN
+ \l__kernel_backend_scope_int
+ \g__kernel_backend_scope_int
+ \group_begin:
+ \int_gset:Nn \g__kernel_backend_scope_int { 1 }
+ }
+\cs_new_protected:Npn \__kernel_backend_scope_end:
+ {
+ \prg_replicate:nn
+ { \g__kernel_backend_scope_int }
+ { \__kernel_backend_literal_svg:n { </g> } }
+ \group_end:
+ \int_gset_eq:NN
+ \g__kernel_backend_scope_int
+ \l__kernel_backend_scope_int
+ }
\cs_new_protected:Npn \__kernel_backend_scope_begin:n #1
- { \__kernel_backend_literal_svg:n { <g~ #1 > } }
+ {
+ \__kernel_backend_literal_svg:n { <g ~ #1 > }
+ \int_set_eq:NN
+ \l__kernel_backend_scope_int
+ \g__kernel_backend_scope_int
+ \group_begin:
+ \int_gset:Nn \g__kernel_backend_scope_int { 1 }
+ }
\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { x }
+\cs_new_protected:Npn \__kernel_backend_scope:n #1
+ {
+ \__kernel_backend_literal_svg:n { <g ~ #1 > }
+ \int_gincr:N \g__kernel_backend_scope_int
+ }
+\cs_generate_variant:Nn \__kernel_backend_scope:n { x }
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macrocode}
%</dvisvgm>
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx
index 8a63b8db15..c5ef445658 100644
--- a/macros/latex/contrib/l3backend/l3backend-box.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3backend-box} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
%<@@=box>
% \end{macrocode}
%
@@ -387,12 +387,12 @@
scale ( 1 , -1 )
"
}
- \__kernel_backend_scope_begin:x
+ \__kernel_backend_scope:x
{
clip-path =
"url ( \c_hash_str l3cp \int_use:N \g_@@_clip_path_int ) "
}
- \__kernel_backend_scope_begin:n
+ \__kernel_backend_scope:n
{
transform =
"
@@ -403,9 +403,6 @@
}
\box_use:N #1
\__kernel_backend_scope_end:
- \__kernel_backend_scope_end:
- \__kernel_backend_scope_end:
-% \skip_horizontal:n { \box_wd:N #1 }
}
\int_new:N \g_@@_clip_path_int
% \end{macrocode}
@@ -465,7 +462,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx
index 6875ce7579..6defac4817 100644
--- a/macros/latex/contrib/l3backend/l3backend-color.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3backend-color} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
%<@@=color>
% \end{macrocode}
%
@@ -81,62 +81,55 @@
% spot ones (here we need a model and a tint). The \texttt{x}-type expansion
% is there to cover the case where \pkg{xcolor} is in use.
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \@@_backend_pickup:N #1 { }
-\AtBeginDocument
+\cs_if_exist:cT { ver@color.sty }
{
- \cs_if_exist:cT { ver@color.sty }
+ \cs_set_protected:Npn \@@_backend_pickup:N #1
{
- \cs_set_protected:Npn \@@_backend_pickup:N #1
+ \exp_args:NV \tl_if_head_is_space:nTF \current@color
{
- \exp_args:NV \tl_if_head_is_space:nTF \current@color
- {
- \tl_set:Nx #1
- {
- { spot }
- { \exp_after:wN \use:n \current@color \c_space_tl 1 }
- }
- }
- {
- \exp_last_unbraced:Nx \@@_backend_pickup:w
- { \current@color } \s_@@_stop #1
- }
+ \tl_set:Nx #1
+ {
+ { \exp_after:wN \use:n \current@color }
+ { 1 }
+ }
+ }
+ {
+ \exp_last_unbraced:Nx \@@_backend_pickup:w
+ { \current@color } \s_@@_stop #1
}
- \cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3
- { \tl_set:Nn #3 { {#1} {#2} } }
}
+ \cs_new_protected:Npn \@@_backend_pickup:w #1 ~ #2 \s_@@_stop #3
+ { \tl_set:Nn #3 { {#1} {#2} } }
}
-%</package>
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}
% {
-% \@@_backend_cmyk:n ,
-% \@@_backend_gray:n ,
-% \@@_backend_rgb:n ,
-% \@@_backend_spot:n ,
+% \@@_backend_select_cmyk:n ,
+% \@@_backend_select_gray:n ,
+% \@@_backend_select_rgb:n ,
% \@@_backend_select:n
% }
% \begin{macro}{\@@_backend_reset:}
-% \begin{macro}{color.fc}
-% Push the data to the stack. In the case of \texttt{dvips} also reset the
-% drawing fill color in raw PostScript.
+% \begin{macro}{color.sc, color.fc}
+% Push the data to the stack. In the case of \texttt{dvips} also saves the
+% drawing color in raw PostScript.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_cmyk:n #1
+\cs_new_protected:Npn \@@_backend_select_cmyk:n #1
{ \@@_backend_select:n { cmyk ~ #1 } }
-\cs_new_protected:Npn \@@_backend_gray:n #1
+\cs_new_protected:Npn \@@_backend_select_gray:n #1
{ \@@_backend_select:n { gray ~ #1 } }
-\cs_new_protected:Npn \@@_backend_rgb:n #1
+\cs_new_protected:Npn \@@_backend_select_rgb:n #1
{ \@@_backend_select:n { rgb ~ #1 } }
-\cs_new_protected:Npn \@@_backend_spot:n #1
- { \@@_backend_select:n {#1} }
\cs_new_protected:Npn \@@_backend_select:n #1
{
\__kernel_backend_literal:n { color~push~ #1 }
%<*dvips>
- \__kernel_backend_postscript:n { /color.fc~{ }~def }
+ \__kernel_backend_postscript:n { /color.sc~ { ~ } ~def }
+ \__kernel_backend_postscript:n { /color.fc~ { ~ } ~def }
%</dvips>
\group_insert_after:N \@@_backend_reset:
}
@@ -147,6 +140,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\@@_backend_select_separation:nn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
+ { \@@_backend_select:n {#1} }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macrocode}
%</dvisvgm|dvipdfmx|dvips|xdvipdfmx>
% \end{macrocode}
@@ -166,43 +166,38 @@
% \cs{@@_backend_pickup:w} breaks it apart, because for instance
% \pkg{xcolor} sets it to be instructions to generate a color
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \@@_backend_pickup:N #1 { }
-\AtBeginDocument
+\cs_if_exist:cT { ver@color.sty }
{
- \cs_if_exist:cT { ver@color.sty }
+ \cs_set_protected:Npn \@@_backend_pickup:N #1
{
- \cs_set_protected:Npn \@@_backend_pickup:N #1
- {
- \exp_last_unbraced:Nx \@@_backend_pickup:w
- { \current@color } ~ 0 ~ 0 ~ 0 \s_@@_stop #1
- }
- \cs_new_protected:Npn \@@_backend_pickup:w
- #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7
+ \exp_last_unbraced:Nx \@@_backend_pickup:w
+ { \current@color } ~ 0 ~ 0 ~ 0 \s_@@_stop #1
+ }
+ \cs_new_protected:Npn \@@_backend_pickup:w
+ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s_@@_stop #7
+ {
+ \str_if_eq:nnTF {#2} { g }
+ { \tl_set:Nn #7 { { gray } {#1} } }
{
- \str_if_eq:nnTF {#2} { g }
- { \tl_set:Nn #7 { { gray } {#1} } }
+ \str_if_eq:nnTF {#4} { rg }
+ { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
{
- \str_if_eq:nnTF {#4} { rg }
- { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
- {
- \str_if_eq:nnTF {#5} { k }
- { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
+ \str_if_eq:nnTF {#5} { k }
+ { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
+ {
+ \str_if_eq:nnTF {#2} { cs }
+ {
+ \tl_set:Nx #7 { { \use:n #1 } { #5 } }
+ }
{
- \str_if_eq:nnTF {#2} { cs }
- {
- \tl_set:Nx #7 { { spot } { \use_none:n #1 ~ #5 } }
- }
- {
- \tl_set:Nn #7 { { gray } { 0 } }
- }
+ \tl_set:Nn #7 { { gray } { 0 } }
}
- }
+ }
}
}
}
}
-%</package>
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -217,26 +212,19 @@
%
% \begin{macro}
% {
-% \@@_backend_cmyk:n ,
-% \@@_backend_gray:n ,
-% \@@_backend_rgb:n ,
-% \@@_backend_spot:n
+% \@@_backend_select_cmyk:n ,
+% \@@_backend_select_gray:n ,
+% \@@_backend_select_rgb:n
% }
-% \begin{macro}{\@@_backend_spot:w}
-% \begin{macro}{\@@_backend_select:n}
% \begin{macro}{\@@_backend_reset:}
% Simply dump the data, but allowing for \LuaTeX{}.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_cmyk:n #1
+\cs_new_protected:Npn \@@_backend_select_cmyk:n #1
{ \@@_backend_select:n { #1 ~ k ~ #1 ~ K } }
-\cs_new_protected:Npn \@@_backend_gray:n #1
+\cs_new_protected:Npn \@@_backend_select_gray:n #1
{ \@@_backend_select:n { #1 ~ g ~ #1 ~ G } }
-\cs_new_protected:Npn \@@_backend_rgb:n #1
+\cs_new_protected:Npn \@@_backend_select_rgb:n #1
{ \@@_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
-\cs_new_protected:Npn \@@_backend_spot:n #1
- { \@@_backend_spot:w #1 \s_@@_stop }
-\cs_new_protected:Npn \@@_backend_spot:w #1 ~ #2 \s_@@_stop
- { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
\cs_new_protected:Npx \@@_backend_select:n #1
{
\cs_if_exist:NTF \tex_pdfextension:D
@@ -255,15 +243,240 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
+%
+% \begin{macro}{\@@_backend_select_separation:nn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
+ { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
+% \end{macrocode}
% \end{macro}
%
% \begin{macrocode}
%</pdfmode>
% \end{macrocode}
%
+% \subsection{Fill and stroke color}
+%
+% Here, \texttt{(x)dvipdfmx} follows \texttt{pdfmode}, while for \texttt{dvips}
+% we have to manage fill and stroke color ourselves. We also handle
+% \texttt{dvisvgm} independently, as there we can create SVG directly.
+%
+% \begin{macrocode}
+%<*dvipdfmx|pdfmode|xdvipdfmx>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_cmyk:n ,
+% \@@_backend_fill_gray:n ,
+% \@@_backend_fill_rgb:n ,
+% \@@_backend_stroke_cmyk:n ,
+% \@@_backend_stroke_gray:n ,
+% \@@_backend_stroke_rgb:n
+% }
+% Drawing (fill/stroke) color is handled in \texttt{(x)dvipdfmx} in the
+% same way as \texttt{pdfmode}. We use the same approach as earlier, except the
+% color stack is not involved so the generic direct PDF operation is used.
+% There is no worry about the nature of strokes: everything is handled
+% automatically.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_cmyk:n #1
+ { \__kernel_backend_literal_pdf:n { #1 ~ k } }
+\cs_new_protected:Npn \@@_backend_fill_gray:n #1
+ { \__kernel_backend_literal_pdf:n { #1 ~ g } }
+\cs_new_protected:Npn \@@_backend_fill_rgb:n #1
+ { \__kernel_backend_literal_pdf:n { #1 ~ rg } }
+ \cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
+ { \__kernel_backend_literal_pdf:n { #1 ~ K } }
+\cs_new_protected:Npn \@@_backend_stroke_gray:n #1
+ { \__kernel_backend_literal_pdf:n { #1 ~ G } }
+\cs_new_protected:Npn \@@_backend_stroke_rgb:n #1
+ { \__kernel_backend_literal_pdf:n { #1 ~ RG } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_separation:nn,
+% \@@_backend_stroke_separation:nn
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2
+ { \__kernel_backend_literal_pdf:n { /#1 ~ cs ~ #2 ~ scn } }
+\cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2
+ { \__kernel_backend_literal_pdf:n { /#1 ~ CS ~ #2 ~ SCN } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvipdfmx|pdfmode|xdvipdfmx>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*dvips>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_cmyk:n ,
+% \@@_backend_fill_gray:n ,
+% \@@_backend_fill_rgb:n ,
+% \@@_backend_stroke_cmyk:n ,
+% \@@_backend_stroke_gray:n ,
+% \@@_backend_stroke_rgb:n
+% }
+% All questions of saving the non-stacked data.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_cmyk:n #1
+ { \__kernel_backend_postscript:n { /color.fc { #1 ~ setcmykcolor } def } }
+\cs_new_protected:Npn \@@_backend_fill_gray:n #1
+ { \__kernel_backend_postscript:n { /color.fc { #1 ~ setgray } def } }
+\cs_new_protected:Npn \@@_backend_fill_rgb:n #1
+ { \__kernel_backend_postscript:n { /color.fc { #1 ~ setrgbcolor } def } }
+ \cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
+ { \__kernel_backend_postscript:n { /color.sc { #1 ~ setcmykcolor } def } }
+\cs_new_protected:Npn \@@_backend_stroke_gray:n #1
+ { \__kernel_backend_postscript:n { /color.sc { #1 ~ setgray } def } }
+\cs_new_protected:Npn \@@_backend_stroke_rgb:n #1
+ { \__kernel_backend_postscript:n { /color.sc { #1 ~ setrgbcolor } def } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_separation:nn,
+% \@@_backend_stroke_separation:nn
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2
+ { \__kernel_backend_postscript:n { /color.fc { #1 } def } }
+\cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2
+ { \__kernel_backend_postscript:n { /color.sc { #1 } def } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvips>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*dvisvgm>
+% \end{macrocode}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_cmyk:n ,
+% \@@_backend_stroke_cmyk:n
+% }
+% \begin{macro}{\@@_backend_cmyk:nw}
+% \begin{macro}
+% {
+% \@@_backend_fill_gray:n ,
+% \@@_backend_stroke_gray:n
+% }
+% \begin{macro}{\@@_backend_gray:nn, \@@_backend_gray_aux:n}
+% \begin{macro}
+% {
+% \@@_backend_fill_rgb:n ,
+% \@@_backend_stroke_rgb:n
+% }
+% \begin{macro}{\@@_backend_rgb:nw}
+% \begin{macro}{\@@_backend:nnnn}
+% For drawings in SVG, we use scopes for all colors. That
+% requires using \texttt{RGB} values, which luckily are easy to
+% convert here (|cmyk| to |RGB| is a fixed function).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_cmyk:n #1
+ { \@@_backend_cmyk:nw { fill } #1 \s_@@_stop }
+\cs_new_protected:Npn \@@_backend_stroke_cmyk:n #1
+ { \@@_backend_cmyk:nw { stroke } #1 \s_@@_stop }
+\cs_new_protected:Npn \@@_backend_cmyk:nw
+ #1#2 ~ #3 ~ #4 ~ #5 \s_@@_stop
+ {
+ \use:x
+ {
+ \@@_backend:nnnn
+ {#1}
+ { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #5 ) ) } }
+ { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #5 ) ) } }
+ { \fp_eval:n { -100 * ( 1 - min ( 1 , #4 + #5 ) ) } }
+ }
+ }
+\cs_new_protected:Npn \@@_backend_fill_gray:n #1
+ { \@@_backend_grab:nn { fill } {#1} }
+\cs_new_protected:Npn \@@_backend_stroke_gray:n #1
+ { \@@_backend_grab:nn { stroke } {#1} }
+\cs_new_protected:Npn \@@_backend_gray:nn #1#2
+ {
+ \use:x
+ {
+ \@@_backend_gray_aux:nn
+ {#1}
+ { \fp_eval:n { 100 * (#2) } }
+ }
+ }
+\cs_new_protected:Npn \@@_backend_gray_aux:nn #1#2
+ { \@@_backend:nnn {#1} {#2} {#2} {#2} }
+\cs_new_protected:Npn \@@_backend_fill_rgb:n #1
+ { \@@_backend_rgb:nw { fill } #1 \s_@@_stop }
+\cs_new_protected:Npn \@@_backend_stroke_rgb:n #1
+ { \@@_backend_rgb:nw { stroke } #1 \s_@@_stop }
+\cs_new_protected:Npn \@@_backend_rgb:nw
+ #1#2 ~ #3 ~ #4\s_@@_stop
+ {
+ \use:x
+ {
+ \@@_backend:nnnn
+ { fill }
+ { \fp_eval:n { 100 * (#2) } }
+ { \fp_eval:n { 100 * (#3) } }
+ { \fp_eval:n { 100 * (#4) } }
+ }
+ }
+\cs_new_protected:Npx \@@_backend:nnnn #1#2#3#4
+ {
+ \__kernel_backend_scope:n
+ {
+ #1 =
+ "
+ rgb
+ (
+ #2 \c_percent_str ,
+ #3 \c_percent_str ,
+ #4 \c_percent_str
+ )
+ "
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_backend_fill_separation:nn,
+% \@@_backend_stroke_separation:nn
+% }
+% At present, these are no-ops.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2
+ { }
+\cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2
+ { }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%</dvisvgm>
+% \end{macrocode}
+%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx
index 1b7d444ae6..7f0f4cfb4a 100644
--- a/macros/latex/contrib/l3backend/l3backend-draw.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3backend-draw} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
%<@@=draw>
% \end{macrocode}
%
@@ -76,13 +76,12 @@
% \end{macro}
%
% \begin{macro}{\@@_backend_begin:, \@@_backend_end:}
-% \begin{macro}{color.fc}
% The |ps::[begin]| special here deals with positioning but allows us to
% continue on to a matching |ps::[end]|: contrast with |ps:|, which positions
% but where we can't split material between separate calls. The
% |@beginspecial|/|@endspecial| pair are from |special.pro| and correct the
-% scale and $y$-axis direction. The definition of |/color.fc| deals with fill
-% color in paths. In contrast to \pkg{pgf}, we don't save the current point:
+% scale and $y$-axis direction.
+% In contrast to \pkg{pgf}, we don't save the current point:
% discussion with Tom Rokici suggested a better way to handle the necessary
% translations (see \cs{@@_backend_box_use:Nnnnn}). (Note that
% |@beginspecial|/|@endspecial| forms a backend scope.) The |[begin]|/^^A
@@ -94,7 +93,6 @@
{
\__kernel_backend_literal:n { ps::[begin] }
\@@_backend_literal:n { @beginspecial }
- \@@_backend_literal:n { SDict ~ begin ~ /color.fc ~ { } ~ def ~ end }
}
\cs_new_protected:Npn \@@_backend_end:
{
@@ -103,7 +101,6 @@
}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_backend_scope_begin:, \@@_backend_scope_end:}
% Scope here may need to contain saved definitions, so the entire memory
@@ -202,7 +199,10 @@
{ \@@_backend_literal:n { closepath } }
\cs_new_protected:Npn \@@_backend_stroke:
{
+ \@@_backend_literal:n { gsave }
+ \@@_backend_literal:n { color.sc }
\@@_backend_literal:n { stroke }
+ \@@_backend_literal:n { grestore }
\bool_if:NT \g_@@_draw_clip_bool
{
\@@_backend_literal:x
@@ -243,6 +243,7 @@
\cs_new_protected:Npn \@@_backend_fillstroke:
{
\@@_backend_literal:n { gsave }
+ \@@_backend_literal:n { color.sc }
\@@_backend_literal:n { color.fc }
\@@_backend_literal:x
{
@@ -333,54 +334,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}
-% {
-% \@@_backend_color_fill_cmyk:n ,
-% \@@_backend_color_stroke_cmyk:n
-% }
-% \begin{macro}
-% {
-% \@@_backend_color_fill_gray:n ,
-% \@@_backend_color_stroke_gray:n
-% }
-% \begin{macro}
-% {
-% \@@_backend_color_fill_rgb:n ,
-% \@@_backend_color_stroke_rgb:n
-% }
-% \begin{macro}{\@@_backend_color_fill:n, \@@_backend_color_stroke:n}
-% For \texttt{dvips}, we can use the standard color stack to deal with
-% stroke color, but for fills have to switch to raw PostScript. This is
-% thus not handled by the stack, but the context is very restricted. See
-% also how fills are implemented.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1
- { \@@_backend_color_fill:n { #1 ~ setcmykcolor } }
-\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1
- { \@@_backend_color_stroke:n { cmyk ~ #1 } }
-\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
- { \@@_backend_color_fill:n { #1 ~ setgray } }
-\cs_new_protected:Npn \@@_backend_color_fill_gray:n #1
- { \@@_backend_color_stroke:n { gray ~ #1 } }
-\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1
- { \@@_backend_color_fill:n { #1 ~ setrgbcolor } }
-\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1
- { \@@_backend_color_stroke:n { rgb ~ #1 } }
-\cs_new_protected:Npn \@@_backend_color_fill:n #1
- {
- \__kernel_backend_postscript:n
- { /color.fc ~ { #1 } ~ def }
- }
-\cs_new_protected:Npn \@@_backend_color_stroke:n #1
- {
- \__kernel_backend_literal:n { color~push~#1 }
- \group_insert_after:N \@@_color_reset:
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_backend_cm:nnnn}
% In \texttt{dvips}, keeping the transformations in line with the engine
@@ -620,66 +573,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}
-% {
-% \@@_backend_color_fill_cmyk:n ,
-% \@@_backend_color_stroke_cmyk:n
-% }
-% \begin{macro}
-% {
-% \@@_backend_color_fill_gray:n ,
-% \@@_backend_color_stroke_gray:n
-% }
-% \begin{macro}
-% {
-% \@@_backend_color_fill_rgb:n ,
-% \@@_backend_color_stroke_rgb:n
-% }
-% \begin{macro}{\@@_backend_color_select:n, \@@_backend_color_select:x}
-% \begin{macro}{\@@_backend_color_reset:}
-% Color has to be split between \texttt{(x)dvipdfmx} and the PDF engines
-% as there is no color stack for fill/stroke separation in the former.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1
- { \@@_backend_color_select:n { #1 ~ k } }
-\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1
- { \@@_backend_color_select:n { #1 ~ K } }
-\cs_new_protected:Npn \@@_backend_color_fill_gray:n #1
- { \@@_backend_color_select:n { #1 ~ g } }
-\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
- { \@@_backend_color_select:n { #1 ~ G } }
-\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1
- { \@@_backend_color_select:n { #1 ~ rg } }
-\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1
- { \@@_backend_color_select:n { #1 ~ RG } }
-%<*pdfmode>
-\cs_new_protected:Npx \@@_backend_color_select:n #1
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D colorstack }
- { \tex_pdfcolorstack:D }
- \exp_not:N \l__kernel_color_stack_int push {#1}
- \group_insert_after:N \exp_not:N \@@_backend_color_reset:
- }
-\cs_new_protected:Npx \@@_backend_color_reset:
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D colorstack }
- { \tex_pdfcolorstack:D }
- \exp_not:N \l__kernel_color_stack_int pop \scan_stop:
- }
-%</pdfmode>
-%<*dvipdfmx|xdvipdfmx>
-\cs_new_eq:NN \@@_backend_color_select:n \__kernel_backend_literal_pdf:n
-%</dvipdfmx|xdvipdfmx>
-\cs_generate_variant:Nn \@@_backend_color_select:n { x }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
% \begin{macro}{\@@_backend_cm:nnnn}
% \begin{macro}{\@@_backend_cm_aux:nnnn}
% Another split here between \texttt{pdfmode} and \texttt{(x)dvipdfmx}.
@@ -883,54 +776,11 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_backend_begin:
{
- \@@_backend_scope_begin:
- \@@_backend_scope:n { transform="translate({?x},{?y})~scale(1,-1)" }
- }
-\cs_new_protected:Npn \@@_backend_end:
- { \@@_backend_scope_end: }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_backend_scope_begin:, \@@_backend_scope_end:}
-% \begin{macro}{\@@_backend_scope:n, \@@_backend_scope:x}
-% \begin{variable}{\g_@@_draw_scope_int, \l_@@_draw_scope_int}
-% Several settings that with other backends are \enquote{stand alone} have
-% to be given as part of a scope in SVG. As a result, there is a need to
-% provide a mechanism to automatically close these extra scopes. That is
-% done using a dedicated function and a pair of tracking variables. Within
-% each graphics scope we use a global variable to do the work, with a group
-% used to save the value between scopes. The result is that no direct action
-% is needed when creating a scope.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_scope_begin:
- {
- \int_set_eq:NN
- \l_@@_draw_scope_int
- \g_@@_draw_scope_int
- \group_begin:
- \int_gzero:N \g_@@_draw_scope_int
- }
-\cs_new_protected:Npn \@@_backend_scope_end:
- {
- \prg_replicate:nn
- { \g_@@_draw_scope_int }
- { \@@_backend_literal:n { </g> } }
- \group_end:
- \int_gset_eq:NN
- \g_@@_draw_scope_int
- \l_@@_draw_scope_int
- }
-\cs_new_protected:Npn \@@_backend_scope:n #1
- {
- \@@_backend_literal:n { <g~ #1 > }
- \int_gincr:N \g_@@_draw_scope_int
+ \__kernel_backend_scope_begin:
+ \__kernel_backend_scope:n { transform="translate({?x},{?y})~scale(1,-1)" }
}
-\cs_generate_variant:Nn \@@_backend_scope:n { x }
-\int_new:N \g_@@_draw_scope_int
-\int_new:N \l_@@_draw_scope_int
+\cs_new_eq:NN \@@_backend_end: \__kernel_backend_scope_end:
% \end{macrocode}
-% \end{variable}
-% \end{macro}
% \end{macro}
%
% \begin{macro}{\@@_backend_moveto:nn, \@@_backend_lineto:nn}
@@ -1158,100 +1008,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}
-% {
-% \@@_backend_color_fill_cmyk:n ,
-% \@@_backend_color_stroke_cmyk:n
-% }
-% \begin{macro}{\@@_backend_color_cmyk:nw}
-% \begin{macro}
-% {
-% \@@_backend_color_fill_gray:n ,
-% \@@_backend_color_stroke_gray:n
-% }
-% \begin{macro}{\@@_backend_color_gray:nn, \@@_backend_color_gray_aux:n}
-% \begin{macro}
-% {
-% \@@_backend_color_fill_rgb:n ,
-% \@@_backend_color_stroke_rgb:n
-% }
-% \begin{macro}{\@@_backend_color_rgb:nw}
-% \begin{macro}{\@@_backend_color:nnnn}
-% For drawings in SVG, we use scopes for all colors. That
-% requires using \texttt{RGB} values, which luckily are easy to
-% convert here (|cmyk| to |RGB| is a fixed function).
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1
- { \@@_backend_color_cmyk:nw { fill } #1 \s_@@_stop }
-\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1
- { \@@_backend_color_cmyk:nw { stroke } #1 \s_@@_stop }
-\cs_new_protected:Npn \@@_backend_color_cmyk:nw
- #1#2 ~ #3 ~ #4 ~ #5 \s_@@_stop
- {
- \use:x
- {
- \@@_backend_color:nnnn
- {#1}
- { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #5 ) ) } }
- { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #5 ) ) } }
- { \fp_eval:n { -100 * ( 1 - min ( 1 , #4 + #5 ) ) } }
- }
- }
-\cs_new_protected:Npn \@@_backend_color_fill_gray:n #1
- { \@@_backend_color_grab:nn { fill } {#1} }
-\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1
- { \@@_backend_color_grab:nn { stroke } {#1} }
-\cs_new_protected:Npn \@@_backend_color_gray:nn #1#2
- {
- \use:x
- {
- \@@_backend_color_gray_aux:nn
- {#1}
- { \fp_eval:n { 100 * (#2) } }
- }
- }
-\cs_new_protected:Npn \@@_backend_color_gray_aux:nn #1#2
- { \@@_backend_color:nnn {#1} {#2} {#2} {#2} }
-\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1
- { \@@_backend_color_rgb:nw { fill } #1 \s_@@_stop }
-\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1
- { \@@_backend_color_rgb:nw { stroke } #1 \s_@@_stop }
-\cs_new_protected:Npn \@@_backend_color_rgb:nw
- #1#2 ~ #3 ~ #4\s_@@_stop
- {
- \use:x
- {
- \@@_backend_color:nnnn
- { fill }
- { \fp_eval:n { 100 * (#2) } }
- { \fp_eval:n { 100 * (#3) } }
- { \fp_eval:n { 100 * (#4) } }
- }
- }
-\cs_new_protected:Npx \@@_backend_color:nnnn #1#2#3#4
- {
- \@@_backend_scope:n
- {
- #1 =
- "
- rgb
- (
- #2 \c_percent_str ,
- #3 \c_percent_str ,
- #4 \c_percent_str
- )
- "
- }
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
% \begin{macro}{\@@_backend_cm:nnnn}
% The four arguments here are floats (the affine matrix), the last
% two are a displacement vector.
@@ -1298,7 +1054,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
index d9ed9f8495..ba3b2ed5e9 100644
--- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3backend-graphics} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
%<@@=graphics>
% \end{macrocode}
%
@@ -69,13 +69,7 @@
% \begin{macro}{\@@_backend_getbb_eps:n}
% Simply use the generic function.
% \begin{macrocode}
-%<*initex>
-\use:n
-%</initex>
-%<*package>
-\AtBeginDocument
-%</package>
- { \cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n }
+\cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n
% \end{macrocode}
% \end{macro}
%
@@ -297,13 +291,7 @@
% Simply use the generic functions: only for \texttt{dvipdfmx} in the
% extraction cases.
% \begin{macrocode}
-%<*initex>
-\use:n
-%</initex>
-%<*package>
-\AtBeginDocument
-%</package>
- { \cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n }
+\cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n
%<*dvipdfmx>
\cs_new_protected:Npn \@@_backend_getbb_jpg:n #1
{
@@ -560,13 +548,7 @@
% \begin{macro}{\@@_backend_getbb_eps:n}
% Simply use the generic function.
% \begin{macrocode}
-%<*initex>
-\use:n
-%</initex>
-%<*package>
-\AtBeginDocument
-%</package>
- { \cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n }
+\cs_new_eq:NN \@@_backend_getbb_eps:n \graphics_read_bb:n
% \end{macrocode}
% \end{macro}
%
@@ -650,7 +632,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx
index 77303f1733..24e7ee2cfa 100644
--- a/macros/latex/contrib/l3backend/l3backend-header.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -59,6 +59,14 @@
%<*dvips&header>
% \end{macrocode}
%
+% \begin{macro}{color.sc, color.fc}
+% Empty definitions for color at the top level.
+% \begin{macrocode}
+/color.sc { } def
+/color.fc { } def
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{pdf.globaldict}
% A small global dictionary for backend use.
% \begin{macrocode}
@@ -79,7 +87,6 @@ false setglobal
% is done here to allow for |Resolution|. The total height of a rectangle
% (an array) needs a little maths, in contrast to simply extracting a value.
% \begin{macrocode}
-
/pdf.cvs { 65534 string cvs } def
/pdf.dvi.pt { 72.27 mul Resolution div } def
/pdf.pt.dvi { 72.27 div Resolution mul } def
@@ -351,7 +358,7 @@ false setglobal
/x
{
0 exch rmoveto
- SDict~
+ SDict
begin
currentpoint
pdf.originy ne exch pdf.originx ne or
diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
index 7fbc94a550..fb569f2c24 100644
--- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-06-29}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3backend-pdf} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
%<@@=pdf>
% \end{macrocode}
%
@@ -458,14 +458,9 @@
\hbox_set:Nn \l_@@_backend_model_box { Gg }
\exp_args:Nx \@@_backend_link_outerbox:n
{
-%<*initex>
- \l_galley_total_left_margin_dim
-%</initex>
-%<*package>
\int_if_odd:nTF { \value { page } }
{ \oddsidemargin }
{ \evensidemargin }
-%</package>
}
\box_move_down:nn { \box_dp:N \l_@@_backend_content_box }
{ \hbox:n { \__kernel_backend_postscript:n { pdf.save.linkll } } }
@@ -527,12 +522,7 @@
[
\dim_to_decimal:n {#1} ~
\dim_to_decimal:n { -\box_dp:N \l_@@_backend_model_box } ~
-%<*initex>
- \dim_to_decimal:n { #1 + \l_galley_text_width_dim } ~
-%</initex>
-%<*package>
\dim_to_decimal:n { #1 + \textwidth } ~
-%</package>
\dim_to_decimal:n { \box_ht:N \l_@@_backend_model_box }
]
[ exch { pdf.pt.dvi } forall ] def
@@ -1314,18 +1304,13 @@
% not rotate. As such, we need to know if landscape is active.
% \begin{macrocode}
\bool_new:N \g_@@_landscape_bool
-%<*package>
-\AtBeginDocument
+\cs_if_exist:NT \landscape
{
- \cs_if_exist:NT \landscape
- {
- \tl_put_right:Nn \landscape
- { \bool_gset_true:N \g_@@_landscape_bool }
- \tl_put_left:Nn \endlandscape
- { \bool_gset_false:N \g_@@_landscape_bool }
- }
+ \tl_put_right:Nn \landscape
+ { \bool_gset_true:N \g_@@_landscape_bool }
+ \tl_put_left:Nn \endlandscape
+ { \bool_gset_false:N \g_@@_landscape_bool }
}
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -1628,7 +1613,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/CHANGELOG.md b/macros/latex/contrib/l3experimental/CHANGELOG.md
index b66593198b..bf4577912b 100644
--- a/macros/latex/contrib/l3experimental/CHANGELOG.md
+++ b/macros/latex/contrib/l3experimental/CHANGELOG.md
@@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2020-08-07]
+
+### Changed
+- Move drawing color functions to `l3color`, generalising the approach
+ with better `dvips` support
+
## [2020-07-17]
### Added
@@ -149,7 +155,8 @@ this project uses date-based 'snapshot' version identifiers.
- New `l3color` module using `xcolor`-like expression syntax
- New `l3draw` module, based on `pgf` layer of the TikZ system
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-07-17...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-08-07...HEAD
+[2020-08-07]: https://github.com/latex3/latex3/compare/2020-07-17...2020-08-07
[2020-07-17]: https://github.com/latex3/latex3/compare/2020-06-18...2020-07-17
[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18
[2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-18...2020-06-03
diff --git a/macros/latex/contrib/l3experimental/README.md b/macros/latex/contrib/l3experimental/README.md
index 413d946314..9831aaadf0 100644
--- a/macros/latex/contrib/l3experimental/README.md
+++ b/macros/latex/contrib/l3experimental/README.md
@@ -1,7 +1,7 @@
Experimental LaTeX3 Concepts
============================
-Release 2020-07-17
+Release 2020-08-07
Overview
--------
diff --git a/macros/latex/contrib/l3experimental/l3benchmark.dtx b/macros/latex/contrib/l3experimental/l3benchmark.dtx
index bd5fa245a9..05058bdef6 100644
--- a/macros/latex/contrib/l3experimental/l3benchmark.dtx
+++ b/macros/latex/contrib/l3experimental/l3benchmark.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -125,14 +125,12 @@
% Our working unit is the scaled second, namely $2^{-16}$ seconds.
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3benchmark}{2020-07-17}{}
+\ProvidesExplPackage{l3benchmark}{2020-08-07}{}
{L3 Experimental benchmarking}
-%</package>
% \end{macrocode}
%
% \subsection{Additions to \pkg{l3sys}: elapsed time}
@@ -576,7 +574,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3benchmark.pdf b/macros/latex/contrib/l3experimental/l3benchmark.pdf
index 7b2598f0d5..adfca31546 100644
--- a/macros/latex/contrib/l3experimental/l3benchmark.pdf
+++ b/macros/latex/contrib/l3experimental/l3benchmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3color.dtx b/macros/latex/contrib/l3experimental/l3color.dtx
index 91cb13e0b4..42151e2a41 100644
--- a/macros/latex/contrib/l3experimental/l3color.dtx
+++ b/macros/latex/contrib/l3experimental/l3color.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -95,7 +95,7 @@
%
% Additional models may be created to allow mixing of spot colors
% with each other or with those from other models. See
-% Section~\ref{l3color:sec:spot} for more detail of spot color support.
+% Section~\ref{l3color:sec:new-models} for more detail of spot color support.
%
% When color is selected by model, the \meta{values} given are specified as
% a comma-separated list. The length of the list will therefore be determined
@@ -215,6 +215,9 @@
%
% \section{Selecting colors}
%
+% General selection of color is safe when split across pages: a stack is
+% used to ensure that the correct color is re-selected on the new page.
+%
% \begin{function}{\color_select:n}
% \begin{syntax}
% \cs{color_select:n} \Arg{color expression}
@@ -237,6 +240,37 @@
% and similar are not influenced by this setting.
% \end{variable}
%
+% \section{Colors for drawing: fills and strokes}
+%
+% Colors for drawing operations and so forth are split into strokes and fills
+% (the latter may also be referred to as non-stroke color). These operations
+% \emph{may} apply to text, but this is backend-depended and the general
+% \cs{color_select:n(n)} should be used for typeset text. In contrast to
+% general color, these operations are \emph{not} stacked and thus must
+% \emph{not} split across pages. Also, an appropriate scope must be applied
+% to the color change, for example \cs{draw_begin:}/\cs{draw_end:}.
+%
+% \begin{function}{\color_fill:n, \color_stroke:n}
+% \begin{syntax}
+% \cs{color_fill:n} \Arg{color expression}
+% \end{syntax}
+% Parses the \meta{color expression} and then activates the resulting
+% color specification for filling or stroking.
+% \end{function}
+%
+% \begin{function}{\color_fill:nn, \color_stroke:nn}
+% \begin{syntax}
+% \cs{color_fill:nn} \Arg{model(s)} \Arg{value(s)}
+% \end{syntax}
+% Activates the color specification equivalent to the \meta{model(s)} and
+% \meta{value(s)} for filling or stroking.
+% \end{function}
+%
+% \begin{variable}{color.fc, color.sc}
+% When using \texttt{dvips}, these PostScript variables hold the fill and
+% stroke color, respectively.
+% \end{variable}
+%
% \section{Multiple color models}
%
% When selecting or setting a color with an explicit model, it is possible
@@ -302,8 +336,59 @@
% assigns the data to the \meta{tl}.
% \end{function}
%
-% \section{Spot colors}
-% \label{l3color:sec:spot}
+% \section{Creating new color models}
+% \label{l3color:sec:new-models}
+%
+% Additional color models are required to support specialist workflows, for
+% example those involving separations (see
+% \url{https://helpx.adobe.com/indesign/using/spot-process-colors.html}
+% for details of the use of separations in print). Color models may be split
+% into families; in the case of the basic \texttt{cmyk}, \texttt{gray}
+% and \texttt{rgb} models, the family and the model itself are synonymous. This
+% is not generally the case: see the PDF reference for more details.
+%
+% \begin{function}{\color_model_new:nnn}
+% \begin{syntax}
+% \cs{color_model_new:nnn} \Arg{model} \Arg{family} \Arg{params}
+% \end{syntax}
+% Creates a new \meta{model} which is derived from the color model \meta{family}.
+% The latter should be one of
+% \begin{itemize}
+% \item \texttt{Separation}
+% \end{itemize}
+% (The \meta{family} may be given in mixed case as-in the PDF reference:
+% internally, case of these strings is folded.)
+% Depending on the \meta{family}, one or more \meta{params} are mandatory or
+% optional.
+% \end{function}
+%
+% For a \texttt{Separation} space, there are three \emph{compulsory} keys.
+% \begin{itemize}
+% \item \texttt{name} The name of the Separation, for example the formal
+% name of a spot color ink. Such a \meta{name} may contain spaces, etc.,
+% which are not permitted in the \meta{model}.
+% \item \texttt{alternative-model} An alternative device colorspace, one of
+% \texttt{cmyk}, \texttt{rgb}, \texttt{gray} or \texttt{cielab}. The three
+% parameter-based models work as described above; see below for
+% details of CIELAB colors.
+% \item \texttt{alternative-values} A comma-separated list of values
+% appropriate to the \texttt{alternative-model}. This information is used by
+% the PDF application if the \texttt{Separation} is not available.
+% \end{itemize}
+%
+% CIELAB color separations are created using the
+% \texttt{alternative-model = cielab} setting. These colors must also have an
+% \texttt{illuminant} key, one of \texttt{a}, \texttt{c}, \texttt{e},
+% \texttt{d50}, \texttt{d55}, \texttt{d65} or \texttt{d75}. The
+% \texttt{alternative-values} in this case are the three parameters $L*$, $a*$
+% and $b*$ of the CIELAB model. Full details of this device-independent color
+% approach are given in the documentation to the \pkg{colorspace} package.
+%
+% CIELAB colors \emph{cannot} be converted into other device-dependent color
+% spaces, and as such, mixing can only occur if colors set up using the CIELAB
+% model are also given with an alternative parameter-based model. If that is
+% not the case, \pkg{l3color} will fallback to using black as the colorant in
+% any mixing.
%
% \end{documentation}
%
@@ -312,7 +397,7 @@
% \section{\pkg{l3color} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -320,10 +405,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3color}{2020-07-17}{}
+\ProvidesExplPackage{l3color}{2020-08-07}{}
{L3 Experimental color support}
-%</package>
% \end{macrocode}
%
% \subsection{Predefined color names}
@@ -419,10 +502,12 @@
\cs_generate_variant:Nn \@@_convert:nnN { VV }
\cs_new_protected:Npn \@@_convert:nnnN #1#2#3#4
{
- \str_if_eq:nnT {#1} { spot } % TO DO!!!
- { }
\tl_set:Nx #4
- { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \s_@@_stop }
+ {
+ \cs_if_exist:cTF { @@_convert_ #1 _ #2 :w }
+ { \use:c { @@_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \s_@@_stop }
+ { \use:c { c_@@_fallback_ #2 _tl } }
+ }
}
\cs_generate_variant:Nn \@@_convert:nnnN { nV , nnV }
\cs_new:Npn \@@_convert_gray_rgb:w #1 ~ #2 \s_@@_stop
@@ -993,6 +1078,41 @@
% \end{macro}
% \end{macro}
%
+% \subsection{Fill and stroke color}
+%
+% \begin{macro}{\color_fill:n, \color_stroke:n}
+% \begin{macro}{\color_fill:nn, \color_stroke:nn}
+% \begin{macro}{\@@_draw:nnn}
+% \begin{macrocode}
+\cs_new_protected:Npn \color_fill:n #1
+ {
+ \@@_parse:nN {#1} \l_@@_current_tl
+ \exp_after:wN \@@_draw:nnn \l_@@_current_tl { fill }
+ }
+\cs_new_protected:Npn \color_stroke:n #1
+ {
+ \@@_parse:nN {#1} \l_@@_current_tl
+ \exp_after:wN \@@_draw:nnn \l_@@_current_tl { stroke }
+ }
+\cs_new_protected:Npn \color_fill:nn #1#2
+ {
+ \@@_select_main:Nw \l_@@_current_tl
+ #1 / / \s_@@_mark #2 / / \s_@@_stop
+ \exp_after:wN \@@_draw:nnn \l_@@_current_tl { fill }
+ }
+\cs_new_protected:Npn \color_stroke:nn #1#2
+ {
+ \@@_select_main:Nw \l_@@_current_tl
+ #1 / / \s_@@_mark #2 / / \s_@@_stop
+ \exp_after:wN \@@_draw:nnn \l_@@_current_tl { stroke }
+ }
+\cs_new_protected:Npn \@@_draw:nnn #1#2#3
+ { \use:c { @@_backend_ #3 _ #1 :n } {#2} }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \subsection{Defining named colors}
%
% \begin{variable}{\l_@@_named_tl}
@@ -1279,6 +1399,357 @@
% \end{macro}
% \end{macro}
%
+% \subsection{Additional color models}
+%
+% \begin{variable}{\l_@@_internal_prop}
+% \begin{macrocode}
+\prop_new:N \l_@@_internal_prop
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\g_@@_separation_int}
+% A tracker for the total number of separations.
+% \begin{macrocode}
+\int_new:N \g_@@_separation_int
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}
+% {
+% \c_@@_model_whitepoint_cielab_a_tl ,
+% \c_@@_model_whitepoint_cielab_b_tl ,
+% \c_@@_model_whitepoint_cielab_e_tl ,
+% \c_@@_model_whitepoint_cielab_d50_tl ,
+% \c_@@_model_whitepoint_cielab_d55_tl ,
+% \c_@@_model_whitepoint_cielab_d65_tl ,
+% \c_@@_model_whitepoint_cielab_d75_tl
+% }
+% Whitepoint data for the CIELAB profiles.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_model_whitepoint_cielab_a_tl { 1.0985 ~ 1 ~ 0.3558 }
+\tl_const:Nn \c_@@_model_whitepoint_cielab_b_tl { 0.9807~ 1 ~ 1.1822 }
+\tl_const:Nn \c_@@_model_whitepoint_cielab_e_tl { 1 ~ 1 ~ 1 }
+\tl_const:cn { c_@@_model_whitepoint_cielab_d50_tl } { 0.9642 ~, 1 ~ 0.8251 }
+\tl_const:cn { c_@@_model_whitepoint_cielab_d55_tl } { 0.9568 ~ 1 ~ 0.9214 }
+\tl_const:cn { c_@@_model_whitepoint_cielab_d65_tl } { 0.9504 ~ 1 ~ 1.0888 }
+\tl_const:cn { c_@@_model_whitepoint_cielab_d75_tl } { 0.9497 ~ 1 ~ 1.2261 }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\c_@@_model_range_cielab_tl}
+% The range for CIELAB color spaces.
+% \begin{macrocode}
+\tl_const:Nn \c_@@_model_range_cielab_tl { -128 ~ 127 ~ -128 ~ 127 }
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\color_model_new:nnn, \@@_model_new:nnn}
+% \begin{macro}{\@@_model_separation:n}
+% \begin{macro}{\@@_model_separation:nn}
+% \begin{macro}{\@@_model_separation:nnn}
+% \begin{macro}{\@@_model_separation:w}
+% \begin{macro}
+% {
+% \@@_model_separation_cmyk:nnnnnn ,
+% \@@_model_separation_gray:nnnnnn ,
+% \@@_model_separation_rgb:nnnnnn
+% }
+% \begin{macro}{\@@_model_convert:nnn}
+% \begin{macro}{\@@_model_separation_cielab:nnnnnn}
+% \begin{macro}{\@@_model_separation_cielab:nnnnnnn}
+% \begin{macro}{\@@_model_separation_init:nnnnn}
+% \begin{macro}{\@@_model_separation_init_cielab:n}
+% \begin{macro}{\@@_model_separation_init_cielab:nnnnn}
+% Set up a new model: in general this has to be handled by a family-dependent
+% function. To avoid some \enquote{interesting} questions with casing, we
+% fold the case of the family name. The key--value list should always be
+% present, so we convert it up-front to a |prop|, then deal with the detail
+% on a per-family basis.
+% \begin{macrocode}
+\cs_new_protected:Npn \color_model_new:nnn #1#2#3
+ {
+ \exp_args:Nee \@@_model_new:nnn
+ { \tl_to_str:n {#1} }
+ { \str_foldcase:n {#2} } {#3}
+ }
+\cs_new_protected:Npn \@@_model_new:nnn #1#2#3
+ {
+ \cs_if_exist:cTF { @@_parse_model_ #1 :w }
+ {
+ \__kernel_msg_error:nnn { color } { model-already-defined } {#1}
+ }
+ {
+ \cs_if_exist:cTF { @@_model_ #2 :n }
+ {
+ \prop_set_from_keyval:Nn \l_@@_internal_prop {#3}
+ \use:c { @@_model_ #2 :n } {#1}
+ }
+ {
+ \__kernel_msg_error:nnn { color } { unknown-model-type } {#2}
+ }
+ }
+ }
+% \end{macrocode}
+% Separations must have a \enquote{real} name, which is pretty easy to find.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation:n #1
+ {
+ \prop_get:NnNTF \l_@@_internal_prop { name }
+ \l_@@_internal_tl
+ {
+ \exp_args:NV \@@_model_separation:nn
+ \l_@@_internal_tl {#1}
+ }
+ {
+ \__kernel_msg_error:nnn { color }
+ { separation-requires-name } {#1}
+ }
+ }
+% \end{macrocode}
+% We have two keys to find at this stage: the alternative space model
+% and linked values.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation:nn #1#2
+ {
+ \prop_get:NnNTF \l_@@_internal_prop { alternative-model }
+ \l_@@_internal_tl
+ {
+ \exp_args:NV \@@_model_separation:nnn
+ \l_@@_internal_tl {#2} {#1}
+ }
+ {
+ \__kernel_msg_error:nnn { color }
+ { separation-alternative-model } {#2}
+ }
+ }
+\cs_new_protected:Npn \@@_model_separation:nnn #1#2#3
+ {
+ \cs_if_exist:cTF { @@_model_separation_ #1 :nnnnnn }
+ {
+ \prop_get:NnNTF \l_@@_internal_prop { alternative-values }
+ \l_@@_internal_tl
+ {
+ \exp_after:wN \@@_model_separation:w \l_@@_internal_tl
+ , 0 , 0 , 0 , 0 \s_@@_stop {#2} {#3} {#1}
+ }
+ {
+ \__kernel_msg_error:nnn { color }
+ { separation-alternative-values } {#2}
+ }
+ }
+ {
+ \__kernel_msg_error:nnn { color }
+ { unknown-alternative-model } {#1}
+ }
+ }
+% \end{macrocode}
+% As each alternative space leads to a different requirement for conversion,
+% and as there are only a small number of choices, we manually split the data
+% and then set up. Notice that mixing tints is really just the same
+% as mixing \texttt{gray}. The \texttt{white} color is special, as it allows
+% tints to be adjusted without an additional color space. To make sure the
+% data is set for that at all group levels, we need to work on a per-level
+% basis. Within the output, only the set-up needs the \enquote{real} name
+% of the colorspace: we use a simple tracking number for general usage
+% as this is a clear namespace without issues of escaping chars.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation:w
+ #1 , #2 , #3 , #4 , #5 \s_@@_stop #6#7#8
+ {
+ \int_gincr:N \g_@@_separation_int
+ \tl_const:cn { c_@@_fallback_ #6 _tl } { 1 }
+ \cs_new_eq:cN { @@_parse_mix_ #6 :nw } \@@_parse_mix_gray:nw
+ \cs_new:cpn { @@_parse_model_ #6 :w } ##1 , ##2 \s_@@_stop
+ { {#6} { \@@_parse_number:n {##1} } }
+ \clist_map_inline:nn { fill , stroke , select }
+ {
+ \cs_new_protected:cpx { @@_backend_ ##1 _ #6 :n } ####1
+ {
+ \exp_not:c { @@_backend_ ##1 _ separation:nn }
+ { color \int_use:N \g_@@_separation_int } {####1}
+ }
+ }
+ \use:c { @@_model_separation_ #8 :nnnnnn }
+ {#6} {#7} {#1} {#2} {#3} {#4}
+ \cs_new_protected:cpx { @@_model_ #6 _white: }
+ {
+ \prop_put:Nnn \exp_not:N \l_@@_named_white_prop {#6} { 0 }
+ \exp_not:N \int_compare:nNnF { \tex_currentgrouplevel:D } = 0
+ { \group_insert_after:N \exp_not:c { @@_model_ #6 _ white: } }
+ }
+ \use:c { @@_model_ #6 _white: }
+ }
+\cs_new_protected:Npn \@@_model_separation_cmyk:nnnnnn #1#2#3#4#5#6
+ {
+ \cs_new:cpn { @@_convert_ #1 _cmyk:w } ##1 ~ ##2 \s_@@_stop
+ {
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #4} ~
+ \fp_eval:n {##1 * #5} ~
+ \fp_eval:n {##1 * #6}
+ }
+ \@@_model_convert:nnn {#1} { cmyk } { rgb }
+ \@@_model_convert:nnn {#1} { cmyk } { gray }
+ \@@_model_separation_init:nnnnn {#2} { /DeviceCMYK } { }
+ { 0 ~ 0 ~ 0 ~ 0 } { #3 ~ #4 ~ #5 ~ #6 }
+ }
+\cs_new_protected:Npn \@@_model_separation_rgb:nnnnnn #1#2#3#4#5#6
+ {
+ \cs_new:cpn { @@_convert_ #1 _rgb:w } ##1 ~ ##2 \s_@@_stop
+ {
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #4} ~
+ \fp_eval:n {##1 * #5}
+ }
+ \@@_model_convert:nnn {#1} { rgb } { cmyk }
+ \@@_model_convert:nnn {#1} { rgb } { gray }
+ \@@_model_separation_init:nnnnn {#2} { /DeviceRGB } { }
+ { 0 ~ 0 ~ 0 } { #3 ~ #4 ~ #5 }
+ }
+\cs_new_protected:Npn \@@_model_separation_gray:nnnnnn #1#2#3#4#5#6
+ {
+ \cs_new:cpn { @@_convert_ #1 _cmyk:w } ##1 ~ ##2 \s_@@_stop
+ {
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #3}
+ }
+ \cs_new:cpn { @@_convert_ #1 _gray:w } ##1 ~ ##2 \s_@@_stop
+ { \fp_eval:n {##1 * #3} }
+ \cs_new:cpn { @@_convert_ #1 _rgb:w } ##1 ~ ##2 \s_@@_stop
+ {
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #3} ~
+ \fp_eval:n {##1 * #3}
+ }
+ \@@_model_separation_init:nnnnn {#2} { /DeviceGray } { } { 0 } {#3}
+ }
+% \end{macrocode}
+% Generic model conversion \emph{via} an alternative intermediate.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_convert:nnn #1#2#3
+ {
+ \cs_new:cpx { @@_convert_ #1 _ #3 :w } ##1 ~ ##2 \s_@@_stop
+ {
+ \exp_not:N \exp_args:NNe \exp_not:N \use:nn
+ \exp_not:c { @@_convert_ #2 _ #3 :w }
+ { \exp_not:c { @@_convert_ #1 _ #2 :w } ##1 ~ ##2 \s_@@_stop }
+ \c_space_tl \exp_not:N \s_@@_stop
+ }
+ }
+% \end{macrocode}
+% Setting up for CIELAB needs a bit more work: there is the illuminant and
+% the need for an appropriate object.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation_cielab:nnnnnn #1#2#3#4#5#6
+ {
+ \prop_get:NnNF \l_@@_internal_prop { illuminant }
+ \l_@@_internal_tl
+ {
+ \__kernel_msg_error:nnn { color }
+ { cielab-requires-illuminant } {#1}
+ \tl_set:Nn \l_@@_internal_tl { d50 }
+ }
+ \exp_args:NV \@@_model_separation_cielab:nnnnnnn
+ \l_@@_internal_tl {#1} {#2} {#3} {#4} {#5} {#6}
+ }
+% \end{macrocode}
+% If a CIELAB space is being set up, we need the illuminant, then create
+% the appropriate set up. At present, this doesn't include \texttt{BlackPoint}
+% or \texttt{Range} data, but that may be added later. As CIELAB colors
+% cannot be converted to anything else, we fallback to producing black: the
+% user should set up a second model for colors set up this way.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation_cielab:nnnnnnn #1#2#3#4#5#6#7
+ {
+ \tl_if_exist:cTF { c_@@_model_whitepoint_cielab_ #1 _tl }
+ {
+ \@@_model_separation_init_cielab:n {#1}
+ \@@_model_separation_init_cielab:nnnnn {#2} {#3} {#4} {#5} {#6}
+ \cs_new:cpn { @@_convert_ #2 _cmyk:w } ##1 ~ ##2 \s_@@_stop
+ { 0 ~ 0 ~ 0 ~ 1 }
+ \cs_new:cpn { @@_convert_ #2 _rgb:w } ##1 ~ ##2 \s_@@_stop
+ { 1 ~ 1 ~ 1 }
+ \cs_new:cpn { @@_convert_ #2 _gray:w } ##1 ~ ##2 \s_@@_stop
+ { 1 }
+ }
+ {
+ \__kernel_msg_error:nnn { color }
+ { unknown-cielab-illuminant } {#1}
+ }
+ }
+% \end{macrocode}
+% Initialising the PDF structures needs two parts: creating an object
+% containing the \enquote{real} name of the Separation, then adding a reference
+% to that to each page. The latter uses the internal name of the \texttt{cs}.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation_init:nnnnn #1#2#3#4#5
+ {
+ \pdf_object_now:nx { array }
+ {
+ /Separation
+ / \str_convert_pdfname:n {#1} ~ #2 ~
+ <<
+ /FunctionType ~ 2
+ /Domain ~ [0 ~ 1]
+ \tl_if_blank:nF {#3} { /Range ~ [#3] }
+ /C0 ~ [#4] ~
+ /C1 ~ [#5] /N ~ 1
+ >>
+ }
+ \use:x
+ {
+ \pdfcoredict_gput:nnn
+ { Page / Resources / ColorSpace }
+ { color \int_use:N \g_@@_separation_int }
+ { \pdf_object_last: }
+ }
+ }
+\cs_if_exist:NF \pdf_object_now:nn
+ { \cs_gset_protected:Npn \@@_model_separation_init:nnnnn #1#2#3#4#5 { } }
+% \end{macrocode}
+% For CIELAB colors, we need one object per document for the illuminant,
+% plus initialisation of the color space referencing that object.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_model_separation_init_cielab:n #1
+ {
+ \pdf_object_new:nn { @@_illuminant_cielab_ #1 } { array }
+ \pdf_object_write:nx { @@_illuminant_cielab_ #1 }
+ {
+ /Lab ~
+ <<
+ /WhitePoint ~
+ [ \tl_use:c { c_@@_model_whitepoint_cielab_ #1 _tl } ]
+ /Range ~ [ \c_@@_model_range_lab_tl ]
+ >>
+ }
+ }
+\cs_if_exist:NF \pdf_object_new:nn
+ { \cs_gset_protected:Npn \@@_model_separation_init_cielab:n #1 { } }
+\cs_new_protected:Npn \@@_model_separation_init_cielab:nnnnn #1#2#3#4#5
+ {
+ \@@_model_separation_init:nnnnn
+ {#2}
+ { \pdf_object_ref:n { @@_illuminant_cielab_ #1 } }
+ { \c_@@_model_range_lab_tl }
+ { 100 ~ 0 ~ 0 }
+ { #3 ~ #4 ~ #5 }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \subsection{Diagnostics}
%
% \begin{macro}{\color_show:n}
@@ -1313,24 +1784,94 @@
% \subsection{Messages}
%
% \begin{macrocode}
+\__kernel_msg_new:nnnn { color } { cielab-requires-illuminant }
+ { CIELAB~color~space~'#1'~require~an~illuminant. }
+ {
+ LaTeX~has~been~asked~to~create~a~separation~color~space~using~
+ CIELAB~specifications,~but~no~\\ \\
+ \iow_indent:n { illuminant = <basis> }
+ \\ \\
+ key~was~given~with~the~correct~information.~LaTeX~will~use~illuminant~
+ 'd50'~for~recovery.
+ }
+\__kernel_msg_new:nnnn { color } { conversion-not-available }
+ { No~model~conversion~available~from~'#1'~to~'#2'. }
+ {
+ LaTeX~has~been~asked~to~convert~a~color~from~model~'#1'~
+ to~model'#2',~but~there~is~no~method~available~to~do~that.
+ }
+\__kernel_msg_new:nnnn { color } { model-already-defined }
+ { Color~model~'#1'~already~defined. }
+ {
+ LaTeX~was~asked~to~define~a~new~color~model~called~'#1',~but~
+ this~color~model~already~exists.
+ }
+\__kernel_msg_new:nnnn { color } { separation-alternative-model }
+ { Separation~color~space~'#1'~require~an~alternative~model. }
+ {
+ LaTeX~has~been~asked~to~create~a~separation~color~space,~
+ but~no~\\ \\
+ \iow_indent:n { alternative-model = <model> }
+ \\ \\
+ key~was~given~with~the~correct~information.
+ }
+\__kernel_msg_new:nnnn { color } { separation-alternative-values }
+ { Separation~color~space~'#1'~require~values~for~the~alternative~space. }
+ {
+ LaTeX~has~been~asked~to~create~a~separation~color~space,~
+ but~no~\\ \\
+ \iow_indent:n { alternative-values = <model> }
+ \\ \\
+ key~was~given~with~the~correct~information.
+ }
+\__kernel_msg_new:nnnn { color } { separation-requires-name }
+ { Separation~color~space~'#1'~require~a~formal~name. }
+ {
+ LaTeX~has~been~asked~to~create~a~separation~color~space,~
+ but~no~\\ \\
+ \iow_indent:n { name = <formal~name> }
+ \\ \\
+ key~was~given~with~the~correct~information.
+ }
\__kernel_msg_new:nnnn { color } { unknown-color }
{ Unknown~color~'#1'. }
{
LaTeX~has~been~asked~to~use~a~color~named~'#1',~
but~this~has~never~been~defined.
}
+\__kernel_msg_new:nnnn { color } { unknown-alternative-model }
+ { Separation~color~space~'#1'~require~an~valid~alternative~space. }
+ {
+ LaTeX~has~been~asked~to~create~a~separation~color~space,~
+ but~the~model~given~as\\ \\
+ \iow_indent:n { alternative-model = <model> }
+ \\ \\
+ is~unknown.
+ }
\__kernel_msg_new:nnnn { color } { unknown-export-format }
{ Unknown~export~format~'#1'. }
{
LaTeX~has~been~asked~to~export~a~color~in~format~'#1',~
but~this~has~never~been~defined.
}
+\__kernel_msg_new:nnnn { color } { unknown-cielab-illuminant }
+ { Unknown~illuminant~model~'#1'. }
+ {
+ LaTeX~has~been~asked~to~use~create~a~color~space~using~CIELAB~
+ illuminant~'#1',~but~this~does~not~exist.
+ }
\__kernel_msg_new:nnnn { color } { unknown-model }
{ Unknown~color~model~'#1'. }
{
LaTeX~has~been~asked~to~use~a~color~model~called~'#1',~
but~this~model~is~not~set~up.
}
+\__kernel_msg_new:nnnn { color } { unknown-model-type }
+ { Unknown~color~model~type~'#1'. }
+ {
+ LaTeX~has~been~asked~to~create~a~new~color~model~called~'#1',~
+ but~this~type~of~model~was~never~set~up.
+ }
% \end{macrocode}
%
% \begin{macrocode}
@@ -1344,7 +1885,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3color.pdf b/macros/latex/contrib/l3experimental/l3color.pdf
index 80ecd21fe5..321bc7cc28 100644
--- a/macros/latex/contrib/l3experimental/l3color.pdf
+++ b/macros/latex/contrib/l3experimental/l3color.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx
index a39bd99f30..8ab5d0c59c 100644
--- a/macros/latex/contrib/l3experimental/l3draw-boxes.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-boxes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-boxes} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -147,7 +147,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-code.pdf b/macros/latex/contrib/l3experimental/l3draw-code.pdf
index 9536595edc..d66a262ce7 100644
--- a/macros/latex/contrib/l3experimental/l3draw-code.pdf
+++ b/macros/latex/contrib/l3experimental/l3draw-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3draw-layers.dtx b/macros/latex/contrib/l3experimental/l3draw-layers.dtx
index 43d699b64b..ad1238cd2f 100644
--- a/macros/latex/contrib/l3experimental/l3draw-layers.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-layers.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-layers} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -208,7 +208,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-paths.dtx b/macros/latex/contrib/l3experimental/l3draw-paths.dtx
index 847ade5f44..5da166a75d 100644
--- a/macros/latex/contrib/l3experimental/l3draw-paths.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-paths.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-paths} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1030,7 +1030,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-points.dtx b/macros/latex/contrib/l3experimental/l3draw-points.dtx
index 15ad9e1f17..3c2b8395a9 100644
--- a/macros/latex/contrib/l3experimental/l3draw-points.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-points.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-points} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -963,7 +963,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx
index 038c93dbf6..7ecb49df28 100644
--- a/macros/latex/contrib/l3experimental/l3draw-scopes.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-scopes.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-scopes} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -132,7 +132,7 @@
\draw_transform_shift_reset:
\@@_softpath_clear:
\draw_linewidth:n { \l_draw_default_linewidth_dim }
- \draw_color:n { . }
+ \color_select:n { . }
\draw_nonzero_rule:
\draw_cap_butt:
\draw_join_miter:
@@ -262,7 +262,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx
index 75af8516ae..e232869980 100644
--- a/macros/latex/contrib/l3experimental/l3draw-softpath.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-softpath.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-softpath} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -607,7 +607,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-state.dtx b/macros/latex/contrib/l3experimental/l3draw-state.dtx
index cfced7e0d5..6701026948 100644
--- a/macros/latex/contrib/l3experimental/l3draw-state.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-state.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-state} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -147,38 +147,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{variable}{\l_@@_color_tmp_tl}
-% Scratch space.
% \begin{macrocode}
-\tl_new:N \l_@@_color_tmp_tl
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}{\draw_color:n, \draw_color_fill:n, \draw_color_stroke:n}
-% \begin{macro}{\@@_color:nn}
-% \begin{macro}{\@@_color:nnn}
-% Much the same as for core color support but calling the relevant
-% driver-level function.
-% \begin{macrocode}
-\cs_new_eq:NN \draw_color:n \color_select:n
-\cs_new_protected:Npn \draw_color_fill:n #1
- { \@@_color:nn { fill } {#1} }
-\cs_new_protected:Npn \draw_color_stroke:n #1
- { \@@_color:nn { stroke } {#1} }
-\cs_new_protected:Npn \@@_color:nn #1#2
- {
- \color_export:nnN {#2} { backend } \l_@@_color_tmp_tl
- \exp_after:wN \@@_color:nnn \l_@@_color_tmp_tl {#1}
- }
-\cs_new_protected:Npn \@@_color:nnn #1#2#3
- { \use:c { @@_backend_color_ #3 _ #1 :n } {#2} }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx
index dcdfc783b7..e9a06f67d0 100644
--- a/macros/latex/contrib/l3experimental/l3draw-transforms.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw-transforms.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3draw-transforms} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -331,7 +331,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw.dtx b/macros/latex/contrib/l3experimental/l3draw.dtx
index 081d42e7f3..11ed7487c1 100644
--- a/macros/latex/contrib/l3experimental/l3draw.dtx
+++ b/macros/latex/contrib/l3experimental/l3draw.dtx
@@ -110,7 +110,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -650,7 +650,7 @@
% \draw_path_lineto:n { 2cm , 1cm }
% \draw_path_lineto:n { 3cm , 0.5cm }
% \draw_path_lineto:n { 3cm , 0cm }
-% \draw_color_fill:n { yellow!80!black }
+% \color_fill:n { yellow!80!black }
% \draw_path_use_clear:n { fill , stroke }
% \draw_end:
% \end{demo}
@@ -662,7 +662,7 @@
% \draw_path_moveto:n { 2cm , 1cm } % Begins a new part
% \draw_path_lineto:n { 3cm , 0.5cm }
% \draw_path_lineto:n { 3cm , 0cm }
-% \draw_color_fill:n { yellow!80!black }
+% \color_fill:n { yellow!80!black }
% \draw_path_use_clear:n { fill , stroke }
% \draw_end:
% \end{demo}
@@ -684,7 +684,7 @@
% { 1cm , 1cm } % First control
% { 2cm , 1cm } % Second control
% { 3cm , 0cm } % End
-% \draw_color_fill:n { yellow!80!black }
+% \color_fill:n { yellow!80!black }
% \draw_path_use_clear:n { fill , stroke }
% \draw_end:
% \end{demo}
@@ -705,7 +705,7 @@
% \draw_path_curveto:nn
% { 1cm , 1cm }
% { 2cm , 0cm }
-% \draw_color_fill:n { yellow!80!black }
+% \color_fill:n { yellow!80!black }
% \draw_path_use_clear:n { fill , stroke }
% \draw_end:
% \end{demo}
@@ -778,7 +778,7 @@
% { 1.5cm , 0cm }
% { 0cm , 1cm }
% \draw_path_use_clear:n { stroke }
-% \draw_color:n { red }
+% \color_select:n { red }
% \draw_path_ellipse:nnn
% { 1cm , 0cm }
% { 1cm , 1cm }
@@ -977,15 +977,6 @@
% \end{demo}
% \end{function}
%
-% \subsection{Color}
-%
-% \begin{function}{\draw_color:n, \draw_color_fill:n, \draw_color_stroke:n}
-% \begin{syntax}
-% \cs{draw_color:n} \Arg{color expression}
-% \end{syntax}
-% Evaluates the \meta{color expression} as described for \pkg{l3color}.
-% \end{function}
-%
% \subsection{Transformations}
%
% Points are normally used unchanged relative to the canvas axes. This can
@@ -1137,7 +1128,7 @@
% \section{\pkg{l3draw} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1145,10 +1136,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3draw}{2020-07-17}{}
+\ProvidesExplPackage{l3draw}{2020-08-07}{}
{L3 Experimental core drawing support}
-%</package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1183,7 +1172,7 @@
% Everything else is in the sub-files!
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3draw.pdf b/macros/latex/contrib/l3experimental/l3draw.pdf
index a8cb1a14dc..9a2f1341e0 100644
--- a/macros/latex/contrib/l3experimental/l3draw.pdf
+++ b/macros/latex/contrib/l3experimental/l3draw.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3galley.dtx b/macros/latex/contrib/l3experimental/l3galley.dtx
index 7865c39b7f..8ed82bcce4 100644
--- a/macros/latex/contrib/l3experimental/l3galley.dtx
+++ b/macros/latex/contrib/l3experimental/l3galley.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -678,7 +678,7 @@
% level both of these need to be correctly saved.
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -686,23 +686,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3galley}{2020-07-17}{}
+\ProvidesExplPackage{l3galley}{2020-08-07}{}
{L3 Experimental galley code}
-%</package>
-% \end{macrocode}
-%
-% \subsection{Support items}
-%
-% Functions or settings which are needed by the galley but perhaps also
-% elsewhere.
-%
-% The default hyphenation character should be set and hyphenation should be
-% enabled.
-% \begin{macrocode}
-%<*initex>
-\tex_defaulthyphenchar:D 45 \scan_stop:
-%</initex>
% \end{macrocode}
%
% \subsection{Scratch variables}
@@ -767,12 +752,7 @@
% The width of the current measure: the \enquote{running} setting can be
% inherited from \LaTeXe{}.
% \begin{macrocode}
-%<*initex>
-\dim_new:N \l_galley_text_width_dim
-%</initex>
-%<*package>
\cs_new_eq:NN \l_galley_text_width_dim \linewidth
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -782,12 +762,7 @@
% width are one way to define the measure width. See also the text width,
% which is an alternative view (and should be in sync with this one!).
% \begin{macrocode}
-%<*initex>
-\dim_new:N \l_galley_total_left_margin_dim
-%</initex>
-%<*package>
\cs_new_eq:NN \l_galley_total_left_margin_dim \@totalleftmargin
-%</package>
\dim_new:N \l_galley_total_right_margin_dim
% \end{macrocode}
% \end{variable}
@@ -1453,18 +1428,11 @@
% \LaTeXe{} \cs{@nodocument} is never removed from the register.
% This precaution is not be needed for a stand-alone format.
% \begin{macrocode}
-%<*initex>
-\tex_everypar:D % TEMP
- {
- \bool_if:NTF \g_@@_begin_level_bool
- { \@@_start_paragraph_first: }
- { \@@_start_paragraph_std: }
- }
-%</initex>
-%<*package>
\cs_undefine:N \everypar
\newtoks \everypar
-\AtBeginDocument
+\cs_if_exist:NTF \AtBeginDocument
+ { \AtBeginDocument }
+ { \use:n }
{
\tex_everypar:D
{
@@ -1474,7 +1442,6 @@
\tex_the:D \everypar
}
}
-%</package>
% \end{macrocode}
% \end{macro}
%
@@ -2497,10 +2464,6 @@
%
% \subsection{\LaTeXe{} functions}
%
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
% \begin{macro}{\clearpage}
% The \tn{clearpage} macro needs to place material into the correct
% structures rather than directly onto the main vertical list. Other
@@ -2653,10 +2616,6 @@
%</package>
% \end{macrocode}
%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
% \end{implementation}
%
% \PrintIndex
diff --git a/macros/latex/contrib/l3experimental/l3galley.pdf b/macros/latex/contrib/l3experimental/l3galley.pdf
index 568e913fd2..4dbe5eae6a 100644
--- a/macros/latex/contrib/l3experimental/l3galley.pdf
+++ b/macros/latex/contrib/l3experimental/l3galley.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3graphics.dtx b/macros/latex/contrib/l3experimental/l3graphics.dtx
index 9908f59c34..fd030ce643 100644
--- a/macros/latex/contrib/l3experimental/l3graphics.dtx
+++ b/macros/latex/contrib/l3experimental/l3graphics.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -232,7 +232,7 @@
% \section{\pkg{l3graphics} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -240,10 +240,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3graphics}{2020-07-17}{}
+\ProvidesExplPackage{l3graphics}{2020-08-07}{}
{L3 Experimental graphics inclusion support}
-%</package>
% \end{macrocode}
%
% \begin{variable}{\l_@@_tmp_ior, \l_@@_tmp_tl}
@@ -715,7 +713,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3graphics.pdf b/macros/latex/contrib/l3experimental/l3graphics.pdf
index 80f61fa228..82fda2baf3 100644
--- a/macros/latex/contrib/l3experimental/l3graphics.pdf
+++ b/macros/latex/contrib/l3experimental/l3graphics.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3pdf-code.pdf b/macros/latex/contrib/l3experimental/l3pdf-code.pdf
index d74c199483..5b479c4e2f 100644
--- a/macros/latex/contrib/l3experimental/l3pdf-code.pdf
+++ b/macros/latex/contrib/l3experimental/l3pdf-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3pdf.dtx b/macros/latex/contrib/l3experimental/l3pdf.dtx
index 984336443e..403410f99d 100644
--- a/macros/latex/contrib/l3experimental/l3pdf.dtx
+++ b/macros/latex/contrib/l3experimental/l3pdf.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -182,7 +182,7 @@
% \section{\pkg{l3pdf} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -190,10 +190,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3pdf}{2020-07-17}{}
+\ProvidesExplPackage{l3pdf}{2020-08-07}{}
{L3 Experimental core PDF support}
-%</package>
% \end{macrocode}
%
% \begin{variable}{\s_@@_stop}
@@ -350,7 +348,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3pdf.pdf b/macros/latex/contrib/l3experimental/l3pdf.pdf
index c51a2055be..572423103f 100644
--- a/macros/latex/contrib/l3experimental/l3pdf.pdf
+++ b/macros/latex/contrib/l3experimental/l3pdf.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3str-format.dtx b/macros/latex/contrib/l3experimental/l3str-format.dtx
index 3c4fbc6336..e44bde9dff 100644
--- a/macros/latex/contrib/l3experimental/l3str-format.dtx
+++ b/macros/latex/contrib/l3experimental/l3str-format.dtx
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -158,7 +158,7 @@
% \section{\pkg{l3str-format} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -166,10 +166,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3str-format}{2020-07-17}{}
+\ProvidesExplPackage{l3str-format}{2020-08-07}{}
{L3 Experimental string formatting}
-%</package>
% \end{macrocode}
%
% \subsection{Helpers}
@@ -974,7 +972,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3str-format.pdf b/macros/latex/contrib/l3experimental/l3str-format.pdf
index fe0b1e71cb..d3c96701b0 100644
--- a/macros/latex/contrib/l3experimental/l3str-format.pdf
+++ b/macros/latex/contrib/l3experimental/l3str-format.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.dtx b/macros/latex/contrib/l3experimental/l3sys-shell.dtx
index 466a4d4107..e368a92582 100644
--- a/macros/latex/contrib/l3experimental/l3sys-shell.dtx
+++ b/macros/latex/contrib/l3experimental/l3sys-shell.dtx
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -127,7 +127,7 @@
% \section{\pkg{l3sys-shell} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -135,10 +135,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage{l3sys-shell}{2020-07-17}{}
+\ProvidesExplPackage{l3sys-shell}{2020-08-07}{}
{L3 Experimental system shell functions}
-%</package>
% \end{macrocode}
%
% \begin{variable}{\s_@@_stop}
@@ -385,7 +383,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3experimental/l3sys-shell.pdf b/macros/latex/contrib/l3experimental/l3sys-shell.pdf
index a455433a5c..ebb8a0f9c6 100644
--- a/macros/latex/contrib/l3experimental/l3sys-shell.pdf
+++ b/macros/latex/contrib/l3experimental/l3sys-shell.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/xcoffins.dtx b/macros/latex/contrib/l3experimental/xcoffins.dtx
index 65c1872645..7e030c8e3b 100644
--- a/macros/latex/contrib/l3experimental/xcoffins.dtx
+++ b/macros/latex/contrib/l3experimental/xcoffins.dtx
@@ -56,7 +56,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -675,7 +675,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xcoffins}{2020-07-17}{}
+\ProvidesExplPackage{xcoffins}{2020-08-07}{}
{L3 Experimental design level coffins}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3experimental/xcoffins.pdf b/macros/latex/contrib/l3experimental/xcoffins.pdf
index ff560afb71..91e71514d8 100644
--- a/macros/latex/contrib/l3experimental/xcoffins.pdf
+++ b/macros/latex/contrib/l3experimental/xcoffins.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3experimental/xgalley.dtx b/macros/latex/contrib/l3experimental/xgalley.dtx
index d917bdecff..0d9bf34149 100644
--- a/macros/latex/contrib/l3experimental/xgalley.dtx
+++ b/macros/latex/contrib/l3experimental/xgalley.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -734,7 +734,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xgalley}{2020-07-17}{}
+\ProvidesExplPackage{xgalley}{2020-08-07}{}
{L3 Experimental galley}
\RequirePackage{xparse,xtemplate,l3galley}
% \end{macrocode}
diff --git a/macros/latex/contrib/l3experimental/xgalley.pdf b/macros/latex/contrib/l3experimental/xgalley.pdf
index e5c6e5ee48..47f63bdd6d 100644
--- a/macros/latex/contrib/l3experimental/xgalley.pdf
+++ b/macros/latex/contrib/l3experimental/xgalley.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index 1386856157..8a40579449 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,15 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2020-08-07]
+
+### Changed
+- Color selection implementation
+- Performance enhancements for `\keys_set:nn`
+
+### Fixed
+- Loading generically on ConTeXt (issue #783)
+
## [2020-07-17]
### Added
@@ -725,7 +734,8 @@ this project uses date-based 'snapshot' version identifiers.
- Step func­tions have been added for dim vari­ables,
e.g. `\dim_step_in­line:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-07-17...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-08-07...HEAD
+[2020-08-07]: https://github.com/latex3/latex3/compare/2020-07-17...2020-08-07
[2020-07-17]: https://github.com/latex3/latex3/compare/2020-06-18...2020-07-17
[2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18
[2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-15...2020-06-03
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index bfd238bcce..d239d38035 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2020-07-17
+Release 2020-08-07
Overview
--------
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index e1a36c6db5..85284e594a 100644
--- a/macros/latex/contrib/l3kernel/expl3.dtx
+++ b/macros/latex/contrib/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2020-07-17}%
+\def\ExplFileDate{2020-08-07}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -798,16 +798,14 @@
%
% \section{The distribution}
%
-% At present, the \pkg{expl3} modules are designed to be loaded on top
-% of \LaTeXe{}. In time, a \LaTeX3 format may be produced based on this
-% code.
+% The \pkg{expl3} modules are designed to be loaded on top of \LaTeXe{}.
%
% \begin{bfseries}
-% While \pkg{expl3} is still experimental, the bundle is now regarded
-% as broadly stable. The syntax conventions and functions provided
+% The core \pkg{expl3} language is broadly stable, and thus
+% the syntax conventions and functions provided
% are now ready for wider use. There may still be changes to some
% functions, but these will be minor when compared to the scope of
-% \pkg{expl3}.
+% \pkg{expl3}. A robust mechanism is in place for such deprecations.
% \end{bfseries}
%
% The distribution of \pkg{expl3} is split up into three packages on
@@ -821,7 +819,9 @@
% and any changes in this code are very limited. This material is
% therefore suitable for use in third-party packages without concern
% about changes in support. All of this code is documented in
-% \texttt{interface3.pdf}.
+% \texttt{interface3.pdf}. With an up-to-date \LaTeXe{} kernel, this
+% code is built into the format file and therefore can be used
+% without any further steps.
%
% The material in \pkg{l3packages} is also stable, but is not always
% at a programming level: most notably, \pkg{xparse} is stable and
@@ -834,9 +834,9 @@
% in terms of interface and functionality detail. Feedback on these
% modules is extremely valuable.
%
-% \section{Moving from \LaTeXe{} to \LaTeX3}
+% \section{Moving from \LaTeXe{} to \pkg{expl3}}
%
-% To help programmers to use \LaTeX3 code in existing \LaTeXe{} package,
+% To help programmers to use \pkg{expl3} code in existing \LaTeXe{} package,
% some short notes on making the change are probably desirable.
% Suggestions for inclusion here are welcome! Some of the following
% is concerned with code, and some with coding style.
@@ -845,11 +845,10 @@
% \item \pkg{expl3} is mainly focused on programming. This means that
% some areas still require the use of \LaTeXe{} internal macros.
% For example, you may well need \tn{@ifpackageloaded}, as there
-% is currently no native \LaTeX3 package loading module.
+% is currently no native \pkg{expl3} package loading module.
% \item User level macros should be generated using the mechanism
% available in the \pkg{xparse} package, which is part of the
-% \texttt{l3package} bundle, available from CTAN or the \LaTeX3 SVN
-% repository.
+% \texttt{l3package} bundle.
% \item At an internal level, most functions should be generated
% \tn{long} (using \cs{cs_new:Npn}) rather than \enquote{short} (using
% \cs{cs_new_nopar:Npn}).
@@ -894,7 +893,7 @@
% updated in time.
%
% \DescribeOption{check-declarations}
-% All variables used in \LaTeX3 code should be declared. This is enforced
+% All variables used in \pkg{expl3} code should be declared. This is enforced
% by \TeX{} for variable types based on \TeX{} registers, but not for those
% which are constructed using macros as the underlying storage system. The
% \texttt{check-declarations} option enables checking for all variable
@@ -907,7 +906,7 @@
% function name in the \texttt{.log} file. This is useful for debugging
% purposes, as it means that there is a complete list of all functions
% created by each module loaded (with the exceptions of a very small number
-% required by the bootstrap code for \LaTeX3). See also \cs{debug_on:n}
+% required by the bootstrap code). See also \cs{debug_on:n}
% \texttt{\{log-functions\}} in \pkg{l3candidates} for finer control.
%
% \DescribeOption{enable-debug}
@@ -936,6 +935,12 @@
% This option is available to support DVI-based routes that do not
% support the |header| line used by \texttt{dvips}.
%
+% The debugging options may also be given using
+% \verb|\keys_set:nn { sys } { ... }|; the \texttt{backend} option can be
+% given in this way \emph{only} if a backend has not already been loaded.
+% This method of setting options is useful where \pkg{expl3} is pre-loaded
+% by the \LaTeXe{} format.
+%
% \section{Using \pkg{expl3} with formats other than \LaTeXe{}}
%
% As well as the \LaTeXe{} package \pkg{expl3}, there is also a
@@ -1047,6 +1052,24 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\c__kernel_expl_date_tl}
+% The \LaTeXe{} loader stores a private copy of \cs{ExplFileDate},
+% which is fixed when the format is build and cannot be changed later.
+% While \cs{ExplFileDate} ensures that the loader (either
+% \texttt{2ekernel} or \texttt{package}) version matches the version
+% of \file{expl3-code.tex}, this one ensures that the version of an
+% eventual |\usepackage{expl3}| matches the version from the format.
+% It seems to be common to have stray format files in the user tree
+% which trigger errors due to mismatched versions (\emph{e.g.}
+% \url{https://github.com/latex3/latex3/issues/781}).
+% \begin{macrocode}
+%<*2ekernel>
+\global\expandafter\let\csname\detokenize
+ {c__kernel_expl_date_tl}\endcsname\ExplFileDate
+%</2ekernel>
+% \end{macrocode}
+% \end{macro}
+%
% The interlock test itself is simple: \cs{ExplLoaderFileDate} must be
% defined and identical to \cs{ExplFileDate}. As this has to work for
% both \LaTeXe{} and other formats, there is some auto-detection involved.
@@ -1220,6 +1243,88 @@
%<@@=expl>
% \end{macrocode}
%
+% Several times users reported this error when loading \pkg{expl3}:
+% \begin{verbatim}
+% ! Undefined control sequence.
+% l.67 \bool
+% _new:N \g__expl_reload_bool
+% \end{verbatim}
+% raised in the reload block below. This happens because the reload
+% check below assumes that if the boolean \cs{g_@@_reload_bool} doesn't
+% exist, this file is being loaded for the first time, and \pkg{expl3}
+% syntax is on. This is a bit of a stretch for assumptions, but it's
+% valid as long as everything's in sync. However the problem reported
+% happened because of a stray format file in the user tree which didn't
+% have the reload code defined here (commit \texttt{1d16336}), so the
+% \cs{g_@@_reload_bool} doesn't exist, but \pkg{expl3} syntax is off,
+% thus the error.
+%
+% At this point, if we have \cs{c__kernel_expl_date_tl} defined, the
+% situation is straightforward: if it matches \cs{ExplLoaderFileDate},
+% then everything's as expected, so no need to worry. If it doesn't,
+% then the current version of \pkg{expl3} differs from the one in the
+% format, so raise a fatal error: the bahaviour is too unpredictable to
+% continue safely. Also, if the error is to be raised, then we're
+% reloading, which means that \pkg{expl3} syntax is off, so we turn it
+% on for the message.
+% \begin{macrocode}
+\ifcsname\detokenize{c__kernel_expl_date_tl}\endcsname
+ \expandafter\ifx\csname\detokenize
+ {c__kernel_expl_date_tl}\endcsname\ExplLoaderFileDate
+ \else
+ \ExplSyntaxOn
+ \__kernel_msg_set:nnn { kernel } { mismatched-expl3 }
+ {
+ Mismatched~expl3~detected!~Loading~expl3~will~abort.
+ \\ \\
+ The~version~of~expl3~preloaded~in~LaTeX~is~
+ \c__kernel_expl_date_tl,~but~the~version~of~expl3~you~are~
+ trying~to~load~is~dated~\ExplLoaderFileDate.~This~is~most~
+ likely~due~to~a~stray~format~file~in~the~user~tree.~Please~
+ make~sure~that~your~LaTeX~format~is~updated.
+ }
+ \exp_after:wN \ExplSyntaxOff \use:n
+ {
+ \__kernel_msg_critical:nn { kernel } { mismatched-expl3 }
+ \use:c { fi: } \use:c { fi: }
+ }
+ \fi
+% \end{macrocode}
+% If \cs{c__kernel_expl_date_tl} does \emph{not} exist, then we're on
+% uncharted lands (that is, any time prior to the version that
+% introduced this token list :-). Two cases might be here, depending
+% whether \pkg{expl3} is loaded into the kernel or not. If we're loading
+% \pkg{expl3} \enquote{normally} as a package, \pkg{expl3} syntax is on.
+% Otherwise it's already loaded in the kernel and we're reloading
+% \file{expl3.sty} so (\file{expl3-code.tex} doesn't load again and)
+% \pkg{expl3} syntax is off.
+% \begin{macrocode}
+\else
+ \ifodd\csname\detokenize{l__kernel_expl_bool}\endcsname
+% \end{macrocode}
+% Package mode; all should be fine, since \file{expl3.sty} and
+% \file{expl3-code.tex} are both loaded in one go, so versions should
+% match (if they don't, it's detected above).
+% Also, we've just tested that \pkg{expl3} syntax is on, so the reload
+% test below will return false and \cs{bool_new:N} will run correctly.
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% In this branch we're reloading, but there are still two cases to
+% consider (sigh\ldots); whether the version preloaded in the format
+% is recent enough to have \cs{g_@@_reload_bool} (2020-06-18 and
+% later) or not. If the boolean is there, we have to do nothing
+% because right ahead we deal with this case.
+% If it is not, we just have to create it:
+% \begin{macrocode}
+ \ExplSyntaxOn
+ \bool_if_exist:NF \g_@@_reload_bool
+ { \bool_new:N \g_@@_reload_bool }
+ \ExplSyntaxOff
+ \fi
+\fi
+% \end{macrocode}
+%
% Here we can also detect whether we're reloading. This code goes into
% \texttt{expl3.ltx} and \texttt{expl3.sty}, the former loaded into the
% \LaTeXe{} format. When this code is loaded for the first time, the
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index d76040d2bd..34f0d20a6b 100644
--- a/macros/latex/contrib/l3kernel/expl3.pdf
+++ b/macros/latex/contrib/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf
index 3c44cfaf5e..57ea709c8e 100644
--- a/macros/latex/contrib/l3kernel/interface3.pdf
+++ b/macros/latex/contrib/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex
index 467d04cf86..268de9b805 100644
--- a/macros/latex/contrib/l3kernel/interface3.tex
+++ b/macros/latex/contrib/l3kernel/interface3.tex
@@ -54,7 +54,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-07-17}
+\date{Released 2020-08-07}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3.ins b/macros/latex/contrib/l3kernel/l3.ins
index e54fe0cb51..5e7d1bfff9 100644
--- a/macros/latex/contrib/l3kernel/l3.ins
+++ b/macros/latex/contrib/l3kernel/l3.ins
@@ -58,9 +58,7 @@ and all files in that bundle must be distributed together.
{
\file{expl3-code.tex}
{
- % ======== PACKAGE ONLY ========
\from{expl3.dtx} {package}
- % ==============================
\from{l3bootstrap.dtx} {package}
\from{l3names.dtx} {package}
\from{l3basics.dtx} {package}
diff --git a/macros/latex/contrib/l3kernel/l3alloc.dtx b/macros/latex/contrib/l3kernel/l3alloc.dtx
deleted file mode 100644
index 8f60b563f7..0000000000
--- a/macros/latex/contrib/l3kernel/l3alloc.dtx
+++ /dev/null
@@ -1,195 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: l3alloc.dtx
-%
-% Copyright (C) 1990-2012,2014-2020 The LaTeX3 Project
-%
-% It may be distributed and/or modified under the conditions of the
-% LaTeX Project Public License (LPPL), either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in the file
-%
-% https://www.latex-project.org/lppl.txt
-%
-% This file is part of the "l3kernel bundle" (The Work in LPPL)
-% and all files in that bundle must be distributed together.
-%
-% -----------------------------------------------------------------------
-%
-% The development version of the bundle can be found at
-%
-% https://github.com/latex3/latex3
-%
-% for those people who are interested.
-%
-%<*driver>
-\documentclass[full,kernel]{l3doc}
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \title{^^A
-% The \pkg{l3alloc} package\\ Register allocation^^A
-% }
-%
-% \author{^^A
-% The \LaTeX3 Project\thanks
-% {^^A
-% E-mail:
-% \href{mailto:latex-team@latex-project.org}
-% {latex-team@latex-project.org}^^A
-% }^^A
-% }
-%
-% \date{Released 2020-07-17}
-%
-% \maketitle
-%
-% \begin{documentation}
-%
-% This module provides the basic mechanism for allocating \TeX{}'s
-% registers when operating in format mode. When loaded as a package on
-% an existing format, the mechanisms from the latter are used.
-%
-% The approach used here is informed by the mechanisms used in plain
-% \TeX{}/\LaTeX{} but noting that newer engines provide us much more
-% flexibility. In addition to this, we do not need allocators for all
-% register types: for example \texttt{toks} are not used by \LaTeX3 whilst
-% reads/writes are handled using a pool and thus do not need a classical
-% allocator.
-%
-% In classical (non-\LuaTeX{}) engines, there are various restriction on
-% registers, for example |\box255| is hard-coded as the output box and
-% inserts have to be allocated below this (not in the extended pool). Rather
-% than worry about this, allocations for the registers affected (\TeX{}
-% |box|, |count|, |dimen| and |skip| types) are simply made only from the
-% extended pool. (There is a performance impact in engines other than
-% \LuaTeX{} but the free use of registers in \pkg{expl3} means that code
-% cannot be sure of obtaining a low-numbered register in any case.)
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3alloc} implementation}
-%
-% \begin{macrocode}
-%<*initex>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<@@=alloc>
-% \end{macrocode}
-%
-% \begin{variable}
-% {
-% \g_@@_int_int ,
-% \g_@@_dim_int ,
-% \g_@@_muskip_int ,
-% \g_@@_int_int ,
-% \g_@@_box_int
-% }
-% The core register tracking is done using the same raw \TeX{} count
-% registers as reserved by plain \TeX{} and \LaTeXe{}, as there may be the
-% odd piece of generic code that needs to work by number. However, as not
-% all of our variables work the same way, some of the older registers are
-% simply ignored. For the same reason, there is no special status for the
-% low-numbers registers other than counts. To avoid having to worry about
-% inserts and reflecting the register availability in \eTeX{}, the lower
-% register space is unused here (though is available for hard-coded
-% use).
-% \begin{macrocode}
-\tex_countdef:D \g_@@_int_int = 10 ~
-\tex_countdef:D \g_@@_dim_int = 11 ~
-\tex_countdef:D \g_@@_skip_int = 12 ~
-\tex_countdef:D \g_@@_muskip_int = 13 ~
-\tex_countdef:D \g_@@_box_int = 14 ~
-\g_@@_int_int = 255 ~
-\g_@@_dim_int = 255 ~
-\g_@@_skip_int = 255 ~
-\g_@@_muskip_int = 0 ~
-\g_@@_box_int = 255 ~
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}
-% {
-% \g_@@_attribute_int ,
-% \g_@@_bytecode_int ,
-% \g_@@_chunkname_int ,
-% \g_@@_whatsit_int
-% }
-% To allow \LuaTeX{} to load |ltluatex.lua| for generic \Lua{} support, a
-% small number of counts have to be correctly named at the \TeX{} level.
-% At present there are no \pkg{expl3} allocators for these concepts so the
-% names and numbers of the tracking variables may change.
-% \begin{macrocode}
-\tex_ifdefined:D \tex_luatexversion:D
- \tex_global:D \tex_countdef:D \g_@@_attribute_int = 21 ~
- \tex_global:D \tex_countdef:D \g_@@_bytecode_int = 22 ~
- \tex_global:D \tex_countdef:D \g_@@_chunkname_int = 23 ~
- \tex_global:D \tex_countdef:D \g_@@_whatsit_int = 24 ~
-\tex_fi:D
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}
-% {\box_new:N, \dim_new:N, \int_new:N, \muskip_new:N \skip_new:N}
-% Each of the public allocators is a wrapper around the one internal
-% function needed here.
-% \begin{macrocode}
-\cs_new_protected:Npx \box_new:N #1
- {
- \exp_not:N \@@_reg:nNnN { box }
- \cs_if_exist:NTF \tex_luatexversion:D
- { \tex_chardef:D }
- {
- \cs_if_exist:NTF \tex_omathchardef:D
- { \tex_omathchardef:D }
- { \tex_mathchardef:D }
- }
- \c_max_register_int
- #1
- }
-\cs_new_protected:Npn \dim_new:N #1
- { \@@_reg:nNnN { dim } \tex_dimendef:D \c_max_register_int #1 }
-\cs_new_protected:Npn \int_new:N #1
- { \@@_reg:nNnN { int } \tex_countdef:D \c_max_register_int #1 }
-\cs_new_protected:Npn \muskip_new:N #1
- { \@@_reg:nNnN { muskip } \tex_muskipdef:D \c_max_register_int #1 }
-\cs_new_protected:Npn \skip_new:N #1
- { \@@_reg:nNnN { skip } \tex_skipdef:D \c_max_register_int #1 }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_reg:nNNN}
-% The allocator itself is modelled somewhat on \LaTeXe{}'s \tn{e@alloc},
-% though there is no need to set \tn{allocationnumber}.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_reg:nNnN #1#2#3#4
- {
- \__kernel_chk_if_free_cs:N #4
- \int_compare:nNnTF { \int_use:c { g_@@_ #1 _int } } < {#3}
- {
- \int_gincr:c { g_@@_ #1 _int }
- \tex_global:D #2 #4 \int_use:c { g_@@_ #1 _int }
- \iow_log:x
- {
- \token_to_str:N #4 ~=~ #1 ~register~
- \int_use:c { g_@@_ #1 _int }
- }
- }
- { \__kernel_msg_fatal:nnx { kernel } { out-of-registers } {#1} }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</initex>
-% \end{macrocode}
-%
-% \end{implementation}
-%
-% \PrintIndex
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index 3cee7e2e9e..ba422a7961 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -1339,7 +1339,7 @@
% \section{\pkg{l3basics} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Renaming some \TeX{} primitives (again)}
@@ -3277,7 +3277,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index 5043d39d56..cf749116d6 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,9 +53,7 @@
%
% The modules documented in \file{source3} are designed to be used on top of
% \LaTeXe{} and are loaded all as one with the usual |\usepackage{expl3}| or
-% |\RequirePackage{expl3}| instructions. These modules will also form the
-% basis of the \LaTeX3 format, but work in this area is incomplete and not
-% included in this documentation at present.
+% |\RequirePackage{expl3}| instructions.
%
% As the modules use a coding syntax different from standard
% \LaTeXe{} it provides a few functions for setting it up.
@@ -123,43 +121,11 @@
% \section{\pkg{l3bootstrap} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
%<@@=kernel>
% \end{macrocode}
%
-% \subsection{Format-specific code}
-%
-% The very first thing to do is to bootstrap the \IniTeX{} system so
-% that everything else will actually work. \TeX{} does not start with
-% some pretty basic character codes set up.
-% \begin{macrocode}
-%<*initex>
-\catcode `\{ = 1 %
-\catcode `\} = 2 %
-\catcode `\# = 6 %
-\catcode `\^ = 7 %
-%</initex>
-% \end{macrocode}
-%
-% Tab characters should not show up in the code, but to be on the
-% safe side.
-% \begin{macrocode}
-%<*initex>
-\catcode `\^^I = 10 %
-%</initex>
-% \end{macrocode}
-%
-% For \LuaTeX{}, the extra primitives need to be enabled. This is not needed
-% in package mode: common formats have the primitives enabled.
-% \begin{macrocode}
-%<*initex>
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname directlua\endcsname\relax
-\else
- \directlua{tex.enableprimitives("", tex.extraprimitives())}%
-\fi
-%</initex>
-% \end{macrocode}
+% \subsection{\LuaTeX{}-specific code}
%
% Depending on the versions available, the \LaTeX{} format may not have
% the raw |\Umath| primitive names available. We fix that globally:
@@ -169,7 +135,6 @@
% a newer format anyway and as they all start |\U| this should be
% reasonably safe.
% \begin{macrocode}
-%<*package>
\begingroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
@@ -187,7 +152,6 @@
}%
\fi
\endgroup
-%</package>
% \end{macrocode}
%
% \subsection{The \tn{pdfstrcmp} primitive in \XeTeX{}}
@@ -215,15 +179,13 @@
\ifnum\luatexversion<95 %
\else
% \end{macrocode}
-% In package mode for \LuaTeX{} we make sure the basic support is loaded:
+% For \LuaTeX{} we make sure the basic support is loaded:
% this is only necessary in plain.
% \begin{macrocode}
-%<*package>
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname newcatcodetable\endcsname\relax
\input{ltluatex}%
\fi
-%</package>
\directlua{require("expl3")}%
% \end{macrocode}
% As the user might be making a custom format, no assumption is made about
@@ -289,24 +251,6 @@
\fi
=0 %
\newlinechar`\^^J %
-%<*initex>
- \def\LineBreak{^^J}%
- \edef\next
- {%
- \errhelp
- {%
- \LongText
- For pdfTeX and XeTeX the '-etex' command-line switch is also
- needed.\LineBreak
- \LineBreak
- Format building will abort!\LineBreak
- }%
- \errmessage{\ShortText}%
- \endgroup
- \noexpand\end
- }%
-%</initex>
-%<*package>
\def\LineBreak{\noexpand\MessageBreak}%
\expandafter\ifx\csname PackageError\endcsname\relax
\def\LineBreak{^^J}%
@@ -323,18 +267,14 @@
\endgroup
\noexpand\endinput
}%
-%</package>
\fi
\next
% \end{macrocode}
%
% \subsection{Extending allocators}
%
-% In format mode, allocating registers is handled by \pkg{l3alloc}. However, in
-% package mode it's much safer to rely on more general code. For example,
-% the ability to extend \TeX{}'s allocation routine to allow for \eTeX{} has
+% The ability to extend \TeX{}'s allocation routine to allow for \eTeX{} has
% been around since 1997 in the \pkg{etex} package.
-%
% Loading this support is delayed until here as we are now sure that the
% \eTeX{} extensions and \tn{pdfstrcmp} or equivalent are available. Thus
% there is no danger of an \enquote{uncontrolled} error if the engine
@@ -353,7 +293,6 @@
% here is done using a group and \tn{ifx} test as we are not quite in the
% position to have a single name for \tn{pdfstrcmp} just yet.
% \begin{macrocode}
-%<*package>
\begingroup
\def\@tempa{LaTeX2e}%
\def\next{}%
@@ -368,98 +307,6 @@
\fi
\expandafter\endgroup
\next
-%</package>
-% \end{macrocode}
-%
-% \subsection{Character data}
-%
-% \TeX{} needs various pieces of data to be set about characters, in particular
-% which ones to treat as letters and which \tn{lccode} values apply as these
-% affect hyphenation. It makes most sense to set this and related information
-% up in one place. Whilst for \LuaTeX{} hyphenation patterns can be read
-% anywhere, other engines have to build them into the format and so we
-% \emph{must} do this set up before reading the patterns. For the Unicode
-% engines, there are shared loaders available to obtain the relevant
-% information directly from the Unicode Consortium data files. These need
-% standard (Ini)\TeX{} category codes and primitive availability and must
-% therefore loaded \emph{very} early. This has a knock-on effect on the
-% $8$-bit set up: it makes sense to do the definitions for those here as
-% well so it is all in one place.
-%
-% For \XeTeX{} and \LuaTeX{}, which are natively Unicode engines, simply
-% load the Unicode data.
-% \begin{macrocode}
-%<*initex>
-\ifdefined\Umathcode
- \input load-unicode-data %
- \input load-unicode-math-classes %
-\else
-% \end{macrocode}
-% For the $8$-bit engines a font encoding scheme must be chosen. At present,
-% this is the EC (|T1|) scheme, with the assumption that languages for which
-% this is not appropriate will be used with one of the Unicode engines.
-% \begin{macrocode}
- \begingroup
-% \end{macrocode}
-% Lower case chars: map to themselves when lower casing and down by |"20| when
-% upper casing. (The characters |a|--|z| are set up correctly by \IniTeX{}.)
-% \begin{macrocode}
- \def\temp{%
- \ifnum\count0>\count2 %
- \else
- \global\lccode\count0 = \count0 %
- \global\uccode\count0 = \numexpr\count0 - "20\relax
- \advance\count0 by 1 %
- \expandafter\temp
- \fi
- }
- \count0 = "A0 %
- \count2 = "BC %
- \temp
- \count0 = "E0 %
- \count2 = "FF %
- \temp
-% \end{macrocode}
-% Upper case chars: map up by |"20| when lower casing, to themselves when upper
-% casing and require an \tn{sfcode} of $999$. (The characters |A|--|Z| are set
-% up correctly by \IniTeX{}.)
-% \begin{macrocode}
- \def\temp{%
- \ifnum\count0>\count2 %
- \else
- \global\lccode\count0 = \numexpr\count0 + "20\relax
- \global\uccode\count0 = \count0 %
- \global\sfcode\count0 = 999 %
- \advance\count0 by 1 %
- \expandafter\temp
- \fi
- }
- \count0 = "80 %
- \count2 = "9C %
- \temp
- \count0 = "C0 %
- \count2 = "DF %
- \temp
-% \end{macrocode}
-% A few special cases where things are not as one might expect using the above
-% pattern: dotless-I, dotless-J, dotted-I and d-bar.
-% \begin{macrocode}
- \global\lccode`\^^Y = `\^^Y %
- \global\uccode`\^^Y = `\I %
- \global\lccode`\^^Z = `\^^Z %
- \global\uccode`\^^Y = `\J %
- \global\lccode"9D = `\i %
- \global\uccode"9D = "9D %
- \global\lccode"9E = "9E %
- \global\uccode"9E = "D0 %
-% \end{macrocode}
-% Allow hyphenation at a zero-width glyph (used to break up ligatures or
-% to place accents between characters).
-% \begin{macrocode}
- \global\lccode23 = 23 %
- \endgroup
-\fi
-%</initex>
% \end{macrocode}
%
% \subsection{The \LaTeX3 code environment}
@@ -470,14 +317,11 @@
% Before changing any category codes, in package mode we need to save
% the situation before loading. Note the set up here means that once applied
% \cs{ExplSyntaxOff} becomes a \enquote{do nothing} command until
-% \cs{ExplSyntaxOn} is used. For format mode, there is no need to save
-% category codes so that step is skipped.
+% \cs{ExplSyntaxOn} is used.
% \begin{macrocode}
-\protected\def\ExplSyntaxOff{}%
-%<*package>
\protected\edef\ExplSyntaxOff
{%
- \protected\def\ExplSyntaxOff{}%
+ \protected\def\noexpand\ExplSyntaxOff{}%
\catcode 9 = \the\catcode 9\relax
\catcode 32 = \the\catcode 32\relax
\catcode 34 = \the\catcode 34\relax
@@ -490,7 +334,6 @@
\endlinechar = \the\endlinechar\relax
\chardef\csname\detokenize{l_@@_expl_bool}\endcsname = 0\relax
}%
-%</package>
% \end{macrocode}
% \end{macro}
%
@@ -560,7 +403,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index e604fe5e4f..8adeb3fb6d 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -887,7 +887,7 @@
% \section{\pkg{l3box} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -917,13 +917,11 @@
% Defining a new \meta{box} register: remember that box $255$ is not
% generally available.
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \box_new:N #1
{
\__kernel_chk_if_free_cs:N #1
\cs:w newbox \cs_end: #1
}
-%</package>
\cs_generate_variant:Nn \box_new:N { c }
% \end{macrocode}
%
@@ -2238,7 +2236,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index d8d6bf6808..7e2cf8df90 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -690,7 +690,7 @@
% \section{\pkg{l3candidates} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Additions to \pkg{l3box}}
@@ -1638,7 +1638,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx
index 25becd59fd..a8c063b944 100644
--- a/macros/latex/contrib/l3kernel/l3cctab.dtx
+++ b/macros/latex/contrib/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -169,7 +169,7 @@
% \section{\pkg{l3cctab} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -242,6 +242,8 @@
%
% First, the \LuaTeX{} case.
% Creating a new category code table is done like other registers.
+% In Con\TeX{}t, \tn{newcatcodetable} does not include the initialisation,
+% so that is added explicitly.
% \begin{macrocode}
\sys_if_engine_luatex:TF
{
@@ -250,25 +252,11 @@
\__kernel_chk_if_free_cs:N #1
\@@_new:N #1
}
-%<*initex>
\cs_new_protected:Npn \@@_new:N #1
{
- \int_gincr:N \g_@@_allocate_int
- \int_compare:nNnTF
- \g_@@_allocate_int > \c_max_register_int
- {
- \__kernel_msg_fatal:nnx
- { kernel } { out-of-registers } { cctab }
- }
- {
- \tex_global:D \tex_chardef:D #1 \g_@@_allocate_int
- \tex_initcatcodetable:D #1
- }
+ \newcatcodetable #1
+ \tex_initcatcodetable:D #1
}
-%</initex>
-%<*package>
- \cs_new_eq:NN \@@_new:N \newcatcodetable
-%</package>
}
% \end{macrocode}
% Now the case for other engines. Here, each table is an integer
@@ -716,14 +704,14 @@
{
\cs_new_protected:Npn \@@_chk_if_valid_aux:NTF #1
{
-%<*initex>
- \bool_lazy_and:nnTF
- { \int_if_odd_p:n {#1} }
- { \int_compare_p:nNn {#1-1} < { \g_@@_allocate_int } }
-%</initex>
-%<*package>
\int_compare:nNnTF {#1-1} < { \e@alloc@ccodetable@count }
-%</package>
+ }
+ \cs_if_exist:NT \c_syst_catcodes_n
+ {
+ \cs_gset_protected:Npn \@@_chk_if_valid_aux:NTF #1
+ {
+ \int_compare:nTF { #1 <= \c_syst_catcodes_n }
+ }
}
}
{
@@ -883,7 +871,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index da18711b6e..f32ad49748 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -762,7 +762,7 @@
% \TestFiles{m3clist002}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -2058,7 +2058,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index 8c9f29e93b..f828834daf 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -408,7 +408,7 @@
% \section{\pkg{l3coffins} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -667,6 +667,7 @@
% \vcoffin_gset:Nnn, \vcoffin_gset:cnn
% }
% \begin{macro}{\@@_set_vertical:NnnNN}
+% \begin{macro}{\@@_set_vertical_aux:}
% Setting vertical coffins is more complex. First, the material is
% typeset with a given width. The default handles and poles are set as
% for a horizontal coffin, before finding the top baseline using a
@@ -694,10 +695,7 @@
#4 #1
{
\dim_set:Nn \tex_hsize:D {#2}
-%<*package>
- \dim_set_eq:NN \linewidth \tex_hsize:D
- \dim_set_eq:NN \columnwidth \tex_hsize:D
-%</package>
+ \@@_set_vertical_aux:
#3
}
#5 #1
@@ -715,9 +713,17 @@
\box_clear:N \l_@@_internal_box
}
}
+\cs_new_protected:Npx \@@_set_vertical_aux:
+ {
+ \cs_if_exist:NT \linewidth
+ { \dim_set_eq:NN \linewidth \tex_hsize:D }
+ \cs_if_exist:NT \columnwidth
+ { \dim_set_eq:NN \columnwidth \tex_hsize:D }
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}
% {\hcoffin_set:Nw, \hcoffin_set:cw, \hcoffin_gset:Nw, \hcoffin_gset:cw}
@@ -783,10 +789,7 @@
{
#3 #1
\dim_set:Nn \tex_hsize:D {#2}
-%<*package>
- \dim_set_eq:NN \linewidth \tex_hsize:D
- \dim_set_eq:NN \columnwidth \tex_hsize:D
-%</package>
+ \@@_set_vertical_aux:
\cs_set_protected:Npn #4
{
#5
@@ -2233,17 +2236,48 @@
% flexible.
% \begin{macrocode}
\tl_new:N \l_@@_display_font_tl
-%<*package>
-\tl_set:Nn \l_@@_display_font_tl { \sffamily \tiny }
-%</package>
+\cs_if_exist:NTF \AtBeginDocument
+ { \AtBeginDocument }
+ { \use:n }
+ {
+ \tl_set:Nx \l_@@_display_font_tl
+ {
+ \cs_if_exist:NT \sffamily { \exp_not:N \sffamily }
+ \cs_if_exist:NT \tiny { \exp_not:N \tiny }
+ }
+ }
% \end{macrocode}
% \end{variable}
%
% \begin{macro}{\@@_color:n}
% Calls \tn{color}, and otherwise does nothing if \tn{color} is not defined.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_color:n #1
- { \cs_if_exist:NT \color { \color {#1} } }
+\cs_if_exist:NTF \AtBeginDocument
+ { \AtBeginDocument }
+ { \use:n }
+ {
+ \cs_new_protected:Npx \@@_color:n #1
+ {
+ \cs_if_exist:NTF \color_select:n
+ { \color_select:n {#1} }
+ {
+ \cs_if_exist:NT \color
+ { \exp_not:N \color {#1} }
+ }
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_rule:nn}
+% Abstract out creation of rules here until there is a higher-level interface.
+% \begin{macrocode}
+\cs_new_protected:Npx \@@_rule:nn #1#2
+ {
+ \cs_if_exist:NTF \rule
+ { \exp_not:N \rule {#1} {#2} }
+ { \hbox:n { \tex_vrule:D width #1 height #2 \scan_stop: } }
+ }
% \end{macrocode}
% \end{macro}
%
@@ -2259,21 +2293,14 @@
{
\hcoffin_set:Nn \l_@@_display_pole_coffin
{
-%<*initex>
- \hbox:n { \tex_vrule:D width 1pt height 1pt \scan_stop: }
-%</initex>
-%<*package>
\@@_color:n {#4}
- \rule { 1pt } { 1pt }
-%</package>
+ \@@_rule:nn { 1pt } { 1pt }
}
\@@_attach_mark:NnnNnnnn #1 {#2} {#3}
\l_@@_display_pole_coffin { hc } { vc } { 0pt } { 0pt }
\hcoffin_set:Nn \l_@@_display_coord_coffin
{
-%<*package>
\@@_color:n {#4}
-%</package>
\l_@@_display_font_tl
( \tl_to_str:n { #2 , #3 } )
}
@@ -2325,13 +2352,8 @@
{
\hcoffin_set:Nn \l_@@_display_pole_coffin
{
-%<*initex>
- \hbox:n { \tex_vrule:D width 1pt height 1pt \scan_stop: }
-%</initex>
-%<*package>
\@@_color:n {#2}
- \rule { 1pt } { 1pt }
-%</package>
+ \@@_rule:nn { 1pt } { 1pt }
}
\prop_set_eq:Nc \l_@@_display_poles_prop
{ coffin ~ \@@_to_value:N #1 ~ poles }
@@ -2371,9 +2393,7 @@
{ 0pt } { 0pt }
\hcoffin_set:Nn \l_@@_display_coord_coffin
{
-%<*package>
\@@_color:n {#6}
-%</package>
\l_@@_display_font_tl
( \tl_to_str:n { #1 , ##1 } )
}
@@ -2511,7 +2531,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3color-base.dtx b/macros/latex/contrib/l3kernel/l3color-base.dtx
index a01acb8fa1..628a4c6f23 100644
--- a/macros/latex/contrib/l3kernel/l3color-base.dtx
+++ b/macros/latex/contrib/l3kernel/l3color-base.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -85,7 +85,7 @@
% \section{\pkg{l3color-base} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -138,9 +138,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \color_ensure_current:
{
-%<*package>
\@@_backend_pickup:N \l_@@_current_tl
-%</package>
\@@_select:N \l_@@_current_tl
}
% \end{macrocode}
@@ -162,7 +160,7 @@
\cs_new_protected:Npn \@@_select:N #1
{ \exp_after:wN \@@_select:nn #1 }
\cs_new_protected:Npn \@@_select:nn #1#2
- { \use:c { @@_backend_ #1 :n } {#2} }
+ { \use:c { @@_backend_select_ #1 :n } {#2} }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -176,7 +174,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index 632e62e58b..5f8f0b93e9 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -119,7 +119,7 @@
% \section{\pkg{l3debug} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1476,7 +1476,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index 8faf863504..10dae76668 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -86,7 +86,7 @@
% \section{\pkg{l3deprecation} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -836,7 +836,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index 0954108c96..9e7498e265 100644
--- a/macros/latex/contrib/l3kernel/l3doc.dtx
+++ b/macros/latex/contrib/l3kernel/l3doc.dtx
@@ -79,7 +79,7 @@ and all files in that bundle must be distributed together.
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx
index bf56cdd54f..24a061d192 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index 4c59fc9770..c5e42ecbc2 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.pdf
+++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index e902085148..d2ef71dac4 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -937,7 +937,7 @@
% \section{\pkg{l3expan} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -2909,7 +2909,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index 7ee7df5347..553c5419cb 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -910,7 +910,7 @@
% \TestFiles{m3file001}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Input operations}
@@ -939,16 +939,9 @@
%
% \begin{variable}{\g_@@_streams_seq}
% A list of the currently-available input streams to be used as a
-% stack. In format mode, all streams (from $0$ to~$15$) are
-% available, while the package requests streams to \LaTeXe{} as they
-% are needed (initially none are needed), so the starting point
-% varies!
+% stack.
% \begin{macrocode}
\seq_new:N \g_@@_streams_seq
-%<*initex>
-\seq_gset_split:Nnn \g_@@_streams_seq { , }
- { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }
-%</initex>
% \end{macrocode}
% \end{variable}
%
@@ -970,7 +963,6 @@
% it holds the value of the \emph{last} stream allocated.
% \begin{macrocode}
\prop_new:N \g_@@_streams_prop
-%<*package>
\int_step_inline:nnn
{ 0 }
{
@@ -984,7 +976,6 @@
{
\prop_gput:Nnn \g_@@_streams_prop {#1} { Reserved~by~format }
}
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -1043,7 +1034,7 @@
% \end{macro}
%
% \begin{macro}{\@@_new:N}
-% In package mode, streams are reserved using \tn{newread} before they
+% Streams are reserved using \tn{newread} before they
% can be managed by \pkg{ior}. To prevent \pkg{ior} from being
% affected by redefinitions of \tn{newread} (such as done by the
% third-party package \pkg{morewrites}), this macro is saved here
@@ -1053,7 +1044,6 @@
% that \tn{newread} works like our own: it actually checks before
% altering definition.
% \begin{macrocode}
-%<*package>
\exp_args:NNf \cs_new_protected:Npn \@@_new:N
{ \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } }
\cs_if_exist:NT \normalend
@@ -1065,15 +1055,13 @@
\@@_new_aux:N #1
}
}
-%</package>
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\__kernel_ior_open:Nn, \__kernel_ior_open:No}
% \begin{macro}{\@@_open_stream:Nn}
% The stream allocation itself uses the fact that there is a list of all of
-% those available, so allocation is simply a question of using the number at
-% the top of the list. In package mode, life gets more complex as it's
+% those available. Life gets more complex as it's
% important to keep things in sync. That is done using a two-part approach:
% any streams that have already been taken up by \pkg{ior} but are now free
% are tracked, so we first try those. If that fails, ask plain \TeX{} or \LaTeXe{}
@@ -1084,16 +1072,11 @@
\ior_close:N #1
\seq_gpop:NNTF \g_@@_streams_seq \l_@@_stream_tl
{ \@@_open_stream:Nn #1 {#2} }
-%<*initex>
- { \__kernel_msg_fatal:nn { kernel } { input-streams-exhausted } }
-%</initex>
-%<*package>
{
\@@_new:N #1
\tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} }
\@@_open_stream:Nn #1 {#2}
}
-%</package>
}
\cs_generate_variant:Nn \__kernel_ior_open:Nn { No }
% \end{macrocode}
@@ -1392,20 +1375,9 @@
%
% \begin{variable}{\g_@@_streams_seq}
% A list of the currently-available output streams to be used as a
-% stack. The stream $18$ is special, as \tn{write}18 is used to
-% denote commands to be sent to the OS\@.
+% stack.
% \begin{macrocode}
\seq_new:N \g_@@_streams_seq
-%<*initex>
-\exp_args:Nnx \use:n
- { \seq_gset_split:Nnn \g_@@_streams_seq { } }
- {
- \int_step_function:nnN { 0 } { \c_term_iow }
- \prg_do_nothing:
- }
-\int_compare:nNnF \c_term_iow < { 18 }
- { \seq_gremove_all:Nn \g_@@_streams_seq { 18 } }
-%</initex>
% \end{macrocode}
% \end{variable}
%
@@ -1421,7 +1393,6 @@
% check on.
% \begin{macrocode}
\prop_new:N \g_@@_streams_prop
-%<*package>
\int_step_inline:nnn
{ 0 }
{
@@ -1435,7 +1406,6 @@
{
\prop_gput:Nnn \g_@@_streams_prop {#1} { Reserved~by~format }
}
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -1483,13 +1453,11 @@
% \end{variable}
%
% \begin{macro}{\@@_new:N}
-% As for read streams, copy \tn{newwrite} in package mode, making sure
+% As for read streams, copy \tn{newwrite}, making sure
% that it is not \tn{outer}.
% \begin{macrocode}
-%<*package>
\exp_args:NNf \cs_new_protected:Npn \@@_new:N
{ \exp_args:NNc \exp_after:wN \exp_stop_f: { newwrite } }
-%</package>
% \end{macrocode}
% \end{macro}
%
@@ -1512,16 +1480,11 @@
\iow_close:N #1
\seq_gpop:NNTF \g_@@_streams_seq \l_@@_stream_tl
{ \@@_open_stream:NV #1 \l_@@_file_name_tl }
-%<*initex>
- { \__kernel_msg_fatal:nn { kernel } { output-streams-exhausted } }
-%</initex>
-%<*package>
{
\@@_new:N #1
\tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} }
\@@_open_stream:NV #1 \l_@@_file_name_tl
}
-%</package>
}
\cs_generate_variant:Nn \iow_open:Nn { c }
\cs_new_protected:Npn \@@_open_stream:Nn #1#2
@@ -1876,7 +1839,7 @@
\cs_new_protected:Npn \iow_wrap:nnnN #1#2#3#4
{
\group_begin:
-%<package> \cs_if_exist_use:N \conditionally@traceoff
+ \cs_if_exist_use:N \conditionally@traceoff
\int_set:Nn \tex_escapechar:D { -1 }
\cs_set:Npx \{ { \token_to_str:N \{ }
\cs_set:Npx \# { \token_to_str:N \# }
@@ -1897,7 +1860,7 @@
% definition: it only works in the first argument of
% \cs{iow_wrap:nnnN}.
% \begin{macrocode}
-%<package> \cs_set_eq:NN \protect \token_to_str:N
+ \cs_set_eq:NN \protect \token_to_str:N
\tl_set:Nx \l_@@_wrap_tl {#1}
\cs_set_eq:NN \iow_allow_break: \@@_allow_break_error:
\cs_set_eq:NN \iow_indent:n \@@_indent_error:n
@@ -2351,7 +2314,6 @@
% \tn{@currnamestack} is empty so is skipped.
% \begin{macrocode}
\seq_new:N \g_@@_stack_seq
-%<*package>
\group_begin:
\cs_set_protected:Npn \@@_tmp:w #1#2#3
{
@@ -2376,25 +2338,16 @@
{ \exp_after:wN \@@_tmp:w \@currnamestack }
}
\group_end:
-%</package>
% \end{macrocode}
% \end{variable}
%
% \begin{variable}{\g_@@_record_seq}
% The total list of files used is recorded separately from the current
% file stack, as nothing is ever popped from this list. The current
-% file name should be included in the file list! In format mode, this
-% is done at the very start of the \TeX{} run. In package mode we
+% file name should be included in the file list! We
% will eventually copy the contents of \cs{@filelist}.
% \begin{macrocode}
\seq_new:N \g_@@_record_seq
-%<*initex>
-\tex_everyjob:D \exp_after:wN
- {
- \tex_the:D \tex_everyjob:D
- \seq_gput_right:NV \g_@@_record_seq \g_file_curr_name_str
- }
-%</initex>
% \end{macrocode}
% \end{variable}
%
@@ -2424,11 +2377,9 @@
% \end{variable}
%
% \begin{variable}{\l_@@_tmp_seq}
-% Scratch space for comma list conversion in package mode.
+% Scratch space for comma list conversion.
% \begin{macrocode}
-%<*package>
\seq_new:N \l_@@_tmp_seq
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -2734,13 +2685,11 @@
{
\seq_map_tokens:Nn \l_file_search_path_seq
{ \@@_full_name_aux:Nnn \seq_map_break:n {#1} }
-%<*package>
\cs_if_exist:NT \input@path
{
\tl_map_tokens:Nn \input@path
{ \@@_full_name_aux:Nnn \tl_map_break:n {#1} }
}
-%</package>
\@@_name_end:
}
{ \@@_ext_check:n {#1} }
@@ -2879,13 +2828,11 @@
\@@_get_full_name_search:nN { } \use:n
\seq_map_inline:Nn \l_file_search_path_seq
{ \@@_get_full_name_search:nN { ##1 / } \seq_map_break:n }
-%<*package>
\cs_if_exist:NT \input@path
{
\tl_map_inline:Nn \input@path
{ \@@_get_full_name_search:nN { ##1 } \tl_map_break:n }
}
-%</package>
\tl_set:Nn \l_@@_full_name_tl { \q_no_value }
\prg_break_point:
\quark_if_no_value:NTF \l_@@_full_name_tl
@@ -3319,14 +3266,9 @@
}
\cs_new_protected:Npx \@@_input:n #1
{
-%<*initex>
- \seq_gput_right:Nn \exp_not:N \g_@@_record_seq {#1}
-%</initex>
-%<*package>
\exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist
{ \exp_not:N \@addtofilelist {#1} }
{ \seq_gput_right:Nn \exp_not:N \g_@@_record_seq {#1} }
-%</package>
\exp_not:N \@@_input_push:n {#1}
\exp_not:N \tex_input:D
\sys_if_engine_luatex:TF
@@ -3353,17 +3295,13 @@
\str_gset_eq:NN \g_file_curr_name_str \l_@@_name_str
\str_gset_eq:NN \g_file_curr_ext_str \l_@@_ext_str
}
-%<*package>
\cs_new_eq:NN \__kernel_file_input_push:n \@@_input_push:n
-%</package>
\cs_new_protected:Npn \@@_input_pop:
{
\seq_gpop:NN \g_@@_stack_seq \l_@@_internal_tl
\exp_after:wN \@@_input_pop:nnn \l_@@_internal_tl
}
-%<*package>
\cs_new_eq:NN \__kernel_file_input_pop: \@@_input_pop:
-%</package>
\cs_new_protected:Npn \@@_input_pop:nnn #1#2#3
{
\str_gset:Nn \g_file_curr_dir_str {#1}
@@ -3498,13 +3436,11 @@
\cs_new_protected:Npn \@@_list:N #1
{
\seq_clear:N \l_@@_tmp_seq
-%<*package>
\clist_if_exist:NT \@filelist
{
\exp_args:NNx \seq_set_from_clist:Nn \l_@@_tmp_seq
{ \tl_to_str:N \@filelist }
}
-%</package>
\seq_concat:NNN \l_@@_tmp_seq \l_@@_tmp_seq \g_@@_record_seq
\seq_remove_duplicates:N \l_@@_tmp_seq
#1 { LaTeX/kernel } { file-list }
@@ -3521,7 +3457,6 @@
% \cs{@filelist} must be turned to strings before being added to
% \cs{g_@@_record_seq}.
% \begin{macrocode}
-%<*package>
\cs_if_exist:NT \@filelist
{
\AtBeginDocument
@@ -3534,7 +3469,6 @@
\l_@@_tmp_seq
}
}
-%</package>
% \end{macrocode}
%
% \subsection{GetIfInfo}
@@ -3626,20 +3560,6 @@
#1 \\
.............
}
-\__kernel_msg_new:nnnn { kernel } { input-streams-exhausted }
- { Input~streams~exhausted }
- {
- TeX~can~only~open~up~to~16~input~streams~at~one~time.\\
- All~16~are~currently~in~use,~and~something~wanted~to~open~
- another~one.
- }
-\__kernel_msg_new:nnnn { kernel } { output-streams-exhausted }
- { Output~streams~exhausted }
- {
- TeX~can~only~open~up~to~16~output~streams~at~one~time.\\
- All~16~are~currently~in~use,~and~something~wanted~to~open~
- another~one.
- }
\__kernel_msg_new:nnnn { kernel } { unbalanced-quote-in-filename }
{ Unbalanced~quotes~in~file~name~'#1'. }
{
@@ -3699,7 +3619,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3final.dtx b/macros/latex/contrib/l3kernel/l3final.dtx
deleted file mode 100644
index 809850d1a5..0000000000
--- a/macros/latex/contrib/l3kernel/l3final.dtx
+++ /dev/null
@@ -1,389 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: l3final.dtx
-%
-% Copyright (C) 1990-2020 The LaTeX3 Project
-%
-% It may be distributed and/or modified under the conditions of the
-% LaTeX Project Public License (LPPL), either version 1.3c of this
-% license or (at your option) any later version. The latest version
-% of this license is in the file
-%
-% https://www.latex-project.org/lppl.txt
-%
-% This file is part of the "l3kernel bundle" (The Work in LPPL)
-% and all files in that bundle must be distributed together.
-%
-% -----------------------------------------------------------------------
-%
-% The development version of the bundle can be found at
-%
-% https://github.com/latex3/latex3
-%
-% for those people who are interested.
-%
-%<*driver>
-\documentclass[full,kernel]{l3doc}
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \title{^^A
-% The \pkg{l3final} package\\ Format finalisation^^A
-% }
-%
-% \author{^^A
-% The \LaTeX3 Project\thanks
-% {^^A
-% E-mail:
-% \href{mailto:latex-team@latex-project.org}
-% {latex-team@latex-project.org}^^A
-% }^^A
-% }
-%
-% \date{Released 2020-07-17}
-%
-% \maketitle
-%
-% \begin{documentation}
-%
-% This module is the end of the \LaTeX3 format file. Currently, a lot of this
-% is copy-pasted from the \LaTeXe{} format or is highly unstable (essentially
-% hacks which need revisiting later).
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3final} Implementation}
-%
-% \begin{macrocode}
-%<*initex>
-% \end{macrocode}
-%
-% \subsection{Input encoding}
-%
-% \begin{macrocode}
-%<@@=char>
-% \end{macrocode}
-%
-% The letters |a|--|z| and |A|--|Z| have the correct catcode directly from \IniTeX{}
-% while for Unicode engines (almost) all characters to be treated as letters
-% are defined by the automatic data parsing. Thus the changes here are to
-% deal with the additional cases.
-%
-% All the characters in the range $0$--$31$ \emph{except} tab (|^^I|), nl
-% (|^^J|), ff (|^^L|) and cr (|^^M|).
-% \begin{macrocode}
-\int_step_inline:nnn { 0 } { `\^^H }
- { \char_set_catcode_invalid:n {#1} }
-\char_set_catcode_invalid:n { `\^^K }
-\int_step_inline:nnn { `\^^N } { 31 }
- { \char_set_catcode_invalid:n {#1} }
-% \end{macrocode}
-% The same is true for the top of the $7$-bit range.
-% \begin{macrocode}
-\char_set_catcode_invalid:n { 127 }
-% \end{macrocode}
-% For the $8$-bit engines dotless-I and dotless-J need to be valid,
-% and these therefore appear in some following code. To avoid an issue
-% when those lines are read, the chars are made valid here and that is
-% reversed for Unicode engines below.
-% \begin{macrocode}
-\char_set_catcode_letter:n { `\^^Y }
-\char_set_catcode_letter:n { `\^^Z }
-% \end{macrocode}
-%
-% For non-Unicode engine we now need to convert from UTF-$8$ to $8$-bit
-% for pattern reading and document use. The set up here is copied from
-% the file |conv-utf8-ec.tex| maintained by \textsc{tug} for hyphenation
-% pattern use. As some of the relevant primitives have been moved and to
-% allow for self-contained code that is copied here with minor adjustments.
-% (The primitives have to be available at point of use not just at point of
-% definition so a compatibility layer is hard to arrange here.)
-% \begin{macrocode}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
-% \end{macrocode}
-% Unicode engines: make these two invalid (this happens after \TeX{}
-% has read and thrown away their use in the following).
-% \begin{macrocode}
- {
- \char_set_catcode_invalid:n { `\^^Y }
- \char_set_catcode_invalid:n { `\^^Z }
- }
-% \end{macrocode}
-% Now for $8$-bit engines.
-% \begin{macrocode}
- {
-% \end{macrocode}
-% At least for the present, make \upTeX{} behave like \pdfTeX{} so
-% the set up is easier.
-% \begin{macrocode}
- \sys_if_engine_uptex:T
- { \tex_disablecjktoken:D }
-% \end{macrocode}
-% The actual mappings: these are kept low-level for performance reasons.
-% \begin{macrocode}
- \cs_new:cpn { @@_active_C3:N } #1
- {
- \if_meaning:w #1 ^^9f ^^ff \else: % ß - U+00DF - germandbls
- \if_meaning:w #1 ^^a0 ^^e0 \else: % à - U+00E0 - agrave
- \if_meaning:w #1 ^^a1 ^^e1 \else: % á - U+00E1 - aacute
- \if_meaning:w #1 ^^a2 ^^e2 \else: % â - U+00E2 - acircumflex
- \if_meaning:w #1 ^^a3 ^^e3 \else: % ã - U+00E3 - atilde
- \if_meaning:w #1 ^^a4 ^^e4 \else: % ä - U+00E4 - adieresis
- \if_meaning:w #1 ^^a5 ^^e5 \else: % å - U+00E5 - aring
- \if_meaning:w #1 ^^a6 ^^e6 \else: % æ - U+00E6 - ae
- \if_meaning:w #1 ^^a7 ^^e7 \else: % ç - U+00E7 - ccedilla
- \if_meaning:w #1 ^^a8 ^^e8 \else: % è - U+00E8 - egrave
- \if_meaning:w #1 ^^a9 ^^e9 \else: % é - U+00E9 - eacute
- \if_meaning:w #1 ^^aa ^^ea \else: % ê - U+00EA - ecircumflex
- \if_meaning:w #1 ^^ab ^^eb \else: % ë - U+00EB - edieresis
- \if_meaning:w #1 ^^ac ^^ec \else: % ì - U+00EC - igrave
- \if_meaning:w #1 ^^ad ^^ed \else: % í - U+00ED - iacute
- \if_meaning:w #1 ^^ae ^^ee \else: % î - U+00EE - icircumflex
- \if_meaning:w #1 ^^af ^^ef \else: % ï - U+00EF - idieresis
- \if_meaning:w #1 ^^b0 ^^f0 \else: % ð - U+00F0 - eth
- \if_meaning:w #1 ^^b1 ^^f1 \else: % ñ - U+00F1 - ntilde
- \if_meaning:w #1 ^^b2 ^^f2 \else: % ò - U+00F2 - ograve
- \if_meaning:w #1 ^^b3 ^^f3 \else: % ó - U+00F3 - oacute
- \if_meaning:w #1 ^^b4 ^^f4 \else: % ô - U+00F4 - ocircumflex
- \if_meaning:w #1 ^^b5 ^^f5 \else: % õ - U+00F5 - otilde
- \if_meaning:w #1 ^^b6 ^^f6 \else: % ö - U+00F6 - odieresis
- \if_meaning:w #1 ^^b8 ^^f8 \else: % ø - U+00F8 - oslash
- \if_meaning:w #1 ^^b9 ^^f9 \else: % ù - U+00F9 - ugrave
- \if_meaning:w #1 ^^ba ^^fa \else: % ú - U+00FA - uacute
- \if_meaning:w #1 ^^bb ^^fb \else: % û - U+00FB - ucircumflex
- \if_meaning:w #1 ^^bc ^^fc \else: % ü - U+00FC - udieresis
- \if_meaning:w #1 ^^bd ^^fd \else: % ý - U+00FD - yacute
- \if_meaning:w #1 ^^be ^^fe \else: % þ - U+00FE - thorn
- \if_meaning:w #1 ^^bf ^^b8 \else: % ÿ - U+00FF - ydieresis
- \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi:
- \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi:
- \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi:
- }
- \cs_new:cpn { @@_active_C4:N } #1
- {
- \if_meaning:w #1 ^^83 ^^a0 \else: % ă - U+0103 - abreve
- \if_meaning:w #1 ^^85 ^^a1 \else: % Ä… - U+0105 - aogonek
- \if_meaning:w #1 ^^87 ^^a2 \else: % ć - U+0107 - cacute
- \if_meaning:w #1 ^^8d ^^a3 \else: % Ä - U+010D - ccaron
- \if_meaning:w #1 ^^8f ^^a4 \else: % Ä - U+010F - dcaron
- \if_meaning:w #1 ^^91 ^^9e \else: % Ä‘ - U+0111 - dcroat
- \if_meaning:w #1 ^^99 ^^a6 \else: % Ä™ - U+0119 - eogonek
- \if_meaning:w #1 ^^9b ^^a5 \else: % Ä› - U+011B - ecaron
- \if_meaning:w #1 ^^9f ^^a7 \else: % ÄŸ - U+011F - gbreve
- \if_meaning:w #1 ^^b1 ^^19 \else: % ı - U+0131 - dotlessi
- \if_meaning:w #1 ^^b3 ^^bc \else: % ij - U+0133 - ij
- \if_meaning:w #1 ^^ba ^^a8 \else: % ĺ - U+013A - lacute
- \if_meaning:w #1 ^^be ^^a9 \else: % ľ - U+013E - lcaron
- \__kernel_msg_expandable_error:nn { kernel } { encoding-failure }
- \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi:
- }
- \cs_new:cpn { @@_active_C5:N } #1
- {
- \if_meaning:w #1 ^^82 ^^aa \else: % Å‚ - U+0142 - lslash
- \if_meaning:w #1 ^^84 ^^ab \else: % Å„ - U+0144 - nacute
- \if_meaning:w #1 ^^88 ^^ac \else: % ň - U+0148 - ncaron
- \if_meaning:w #1 ^^8b ^^ad \else: % Å‹ - U+014B - eng
- \if_meaning:w #1 ^^91 ^^ae \else: % Å‘ - U+0151 - ohungarumlaut
- \if_meaning:w #1 ^^93 ^^f7 \else: % Å“ - U+0153 - oe
- \if_meaning:w #1 ^^95 ^^af \else: % Å• - U+0155 - racute
- \if_meaning:w #1 ^^99 ^^b0 \else: % Å™ - U+0159 - rcaron
- \if_meaning:w #1 ^^9b ^^b1 \else: % Å› - U+015B - sacute
- \if_meaning:w #1 ^^9f ^^b3 \else: % ÅŸ - U+015F - scedilla
- \if_meaning:w #1 ^^a1 ^^b2 \else: % Å¡ - U+0161 - scaron
- \if_meaning:w #1 ^^a5 ^^b4 \else: % ť - U+0165 - tcaron
- \if_meaning:w #1 ^^af ^^b7 \else: % ů - U+016F - uring
- \if_meaning:w #1 ^^b1 ^^b6 \else: % ű - U+0171 - uhungarumlaut
- \if_meaning:w #1 ^^ba ^^b9 \else: % ź - U+017A - zacute
- \if_meaning:w #1 ^^bc ^^bb \else: % ż - U+017C - zdotaccent
- \if_meaning:w #1 ^^be ^^ba \else: % ž - U+017E - zcaron
- \__kernel_msg_expandable_error:nn { kernel } { encoding-failure }
- \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi:
- \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi:
- }
- \cs_new:cpn { @@_active_C8:N } #1
- {
- \if_meaning:w #1 ^^99 ^^b3 \else: % È™ - U+0219 - scommaaccent
- \if_meaning:w #1 ^^9b ^^b5 \else: % È› - U+021B - tcommaaccent
- \if_meaning:w #1 ^^b7 ^^1a \else: % È· - U+0237 - dotlessj
- \__kernel_msg_expandable_error:nn { kernel } { encoding-failure }
- \fi: \fi: \fi:
- }
-% \end{macrocode}
-% Install and record the active characters.
-% \begin{macrocode}
- \clist_map_inline:nn { C3 , C4 , C5 , C8 }
- {
- \char_set_catcode_active:n { "#1 }
- \char_set_active_eq:nc { "#1 } { @@_active_ #1 :N }
- \seq_put_right:Nx \l_char_special_seq
- { \exp_not:c { \char_generate:nn { "#1 } { 12 } } }
- \seq_put_right:Nx \l_char_active_seq
- { \exp_not:c { \char_generate:nn { "#1 } { 12 } } }
- }
- \__kernel_msg_new:nnn { kernel } { encoding-failure }
- { Unknown~UTF-8~char }
-% \end{macrocode}
-% All of the chars are lower case so give them the correct \tn{lccode}
-% values.
-% \begin{macrocode}
- \clist_map_inline:nn
- {
- 19 , 1A , 9E , A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 ,
- AA , AB , AC , AD , AE , AF , B0 , B1 , B2 , B3 , B3 , B4 , B5 ,
- B6 , B7 , B8 , B9 , BA , BB , BC , E0 , E1 , E2 , E3 , E4 , E5 ,
- E6 , E7 , E8 , E9 , EA , EB , EC , ED , EE , EF , F0 , F1 , F2 ,
- F3 , F4 , F5 , F6 , F7 , F8 , F9 , FA , FB , FC , FD , FE , FF
- }
- { \char_set_lccode:nn { "#1 } { "#1 } }
- }
-% \end{macrocode}
-%
-% \subsection{Temporary hacks}
-%
-% \begin{macro}{\T1/lmr/m/n/10, \TU/lmr/m/n/10}
-% For \emph{testing only} provide some kind of output: for that we
-% need a font. At present, select Latin Modern Roman at 10\,pt:
-% entirely arbitrary but at least usable.
-% \begin{macrocode}
-\sys_if_engine_luatex:T
- {
- \tex_everyjob:D \exp_after:wN
- {
- \tex_the:D \tex_everyjob:D
- \lua_now:n { require("l3format.lua") }
- }
- }
-\use:x
- {
- \tex_everyjob:D
- {
- \tex_the:D \tex_everyjob:D
- \bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
- {
- \tex_font:D \exp_not:c { TU/lmr/m/n/10 }
- = "[lmroman10-regular.otf]/OT" \scan_stop:
- \exp_not:c { TU/lmr/m/n/10 }
- \tex_font:D \exp_not:c { TU/lmm/m/n/10 }
- = "[latinmodern-math.otf]/OT:mode=base;script=math;" \scan_stop:
- \tex_font:D \exp_not:c { TU/lmm/m/n/7 }
- = "[latinmodern-math.otf]/OT:mode=base;script=math;+ssty=0;"~at~7pt \scan_stop:
- \tex_font:D \exp_not:c { TU/lmm/m/n/5 }
- = "[latinmodern-math.otf]/OT:mode=base;script=math;+ssty=1;"~at~5pt \scan_stop:
- \exp_not:N \int_step_inline:nnn { 0 } { 3 }
- {
- \tex_textfont:D ##1 = \exp_not:c { TU/lmm/m/n/10 }
- \tex_scriptfont:D ##1 = \exp_not:c { TU/lmm/m/n/7 }
- \tex_scriptscriptfont:D ##1 = \exp_not:c { TU/lmm/m/n/5 }
- }
- }
- {
- \tex_font:D \exp_not:c { T1/lmr/m/n/10 }
- = ec-lmr10 \scan_stop:
- \exp_not:c { T1/lmr/m/n/10 }
- \tex_font:D \exp_not:c { OT1/lmr/m/n/10 }
- = rm-lmr10 \scan_stop:
- \tex_font:D \exp_not:c { OML/lmm/m/it/10 }
- = lmmi10 \scan_stop:
- \tex_font:D \exp_not:c { OMS/lmsy/m/n/10 }
- = lmsy10 \scan_stop:
- \tex_font:D \exp_not:c { OMX/lmex/m/n/10 }
- = lmex10 \scan_stop:
- \tex_font:D \exp_not:c { OT1/lmr/m/n/7 }
- = rm-lmr7 \scan_stop:
- \tex_font:D \exp_not:c { OML/lmm/m/it/7 }
- = lmmi7 \scan_stop:
- \tex_font:D \exp_not:c { OMS/lmsy/m/n/7 }
- = lmsy7 \scan_stop:
- \tex_font:D \exp_not:c { OMX/lmex/m/n/7 }
- = lmex10~at~7pt \scan_stop:
- \tex_font:D \exp_not:c { OT1/lmr/m/n/5 }
- = rm-lmr5 \scan_stop:
- \tex_font:D \exp_not:c { OML/lmm/m/it/5 }
- = lmmi5 \scan_stop:
- \tex_font:D \exp_not:c { OMS/lmsy/m/n/5 }
- = lmsy5 \scan_stop:
- \tex_font:D \exp_not:c { OMX/lmex/m/n/5 }
- = lmex10~at~5pt \scan_stop:
- \tex_textfont:D 0 = \exp_not:c { OT1/lmr/m/n/10 }
- \tex_textfont:D 1 = \exp_not:c { OML/lmm/m/it/10 }
- \tex_textfont:D 2 = \exp_not:c { OMS/lmsy/m/n/10 }
- \tex_textfont:D 3 = \exp_not:c { OMX/lmex/m/n/10 }
- \tex_scriptfont:D 0 = \exp_not:c { OT1/lmr/m/n/7 }
- \tex_scriptfont:D 1 = \exp_not:c { OML/lmm/m/it/7 }
- \tex_scriptfont:D 2 = \exp_not:c { OMS/lmsy/m/n/7 }
- \tex_scriptfont:D 3 = \exp_not:c { OMX/lmex/m/n/7 }
- \tex_scriptscriptfont:D 0 = \exp_not:c { OT1/lmr/m/n/5 }
- \tex_scriptscriptfont:D 1 = \exp_not:c { OML/lmm/m/it/5 }
- \tex_scriptscriptfont:D 2 = \exp_not:c { OMS/lmsy/m/n/5 }
- \tex_scriptscriptfont:D 3 = \exp_not:c { OMX/lmex/m/n/5 }
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% Produce PDF output if possible (easier testing) and set some kind of
-% horizontal width: the one here is the \LaTeXe{} default. A parfill is
-% also useful so we get some kind of sensible paragraphs.
-% \begin{macrocode}
-\dim_set:Nn \tex_hsize:D { 345pt }
-\skip_set:Nn \tex_parfillskip:D { 0pt plus 1fil }
-\cs_if_exist:NT \tex_pdfoutput:D
- { \int_set:Nn \tex_pdfoutput:D { 1 } }
-% \end{macrocode}
-%
-% \begin{macro}{\stop}
-% A way out of the run without needing to switch to the code environment.
-% \begin{macrocode}
-\cs_set_eq:NN \stop \tex_end:D
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Final tasks}
-%
-% \begin{macro}{\par}
-% \TeX{} has a nasty habit of inserting a command with the name \cs{par}
-% so we had better make sure that \cs{par} has a definition.
-% \begin{macrocode}
-\cs_set_eq:NN \par \tex_par:D
-% \end{macrocode}
-% \end{macro}
-%
-% The very last job is to dump the format, taking care to first leave
-% the code environment and set the appropriate flag.
-% \begin{macrocode}
-\use:n
- {
- \bool_set_false:N \l__kernel_expl_bool
- \char_set_catcode_space:n { 9 } % tab
- \char_set_catcode_space:n { 32 } % space
- \char_set_catcode_active:n { 34 } % double quote
- \char_set_catcode_active:n { 36 } % dollar
- \char_set_catcode_active:n { 38 } % ampersand
- \char_set_catcode_other:n { 58 } % colon
- \char_set_catcode_active:n { 94 } % circumflex
- \char_set_catcode_active:n { 95 } % underscore
- \char_set_catcode_other:n { 124 } % pipe
- \char_set_catcode_active:n { 126 } % tilde
- \tex_endlinechar:D = 13 \scan_stop:
- \tex_newlinechar:D = 10 \scan_stop:
- \tex_dump:D
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</initex>
-% \end{macrocode}
-%
-% \end{implementation}
-%
-%\PrintIndex
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index 0d68f05eee..9bc6f9de6f 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -159,7 +159,7 @@
% \section{\pkg{l3flag} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -300,7 +300,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3format.ins b/macros/latex/contrib/l3kernel/l3format.ins
deleted file mode 100644
index 0671ed9ee6..0000000000
--- a/macros/latex/contrib/l3kernel/l3format.ins
+++ /dev/null
@@ -1,164 +0,0 @@
-\iffalse meta-comment
-
-File l3format.ins
-
-Copyright (C) 2011,2012,2014-2020 The LaTeX3 Project
-
-It may be distributed and/or modified under the conditions of the
-LaTeX Project Public License (LPPL), either version 1.3c of this
-license or (at your option) any later version. The latest version
-of this license is in the file
-
- https://www.latex-project.org/lppl.txt
-
-This file is part of the "l3kernel bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
------------------------------------------------------------------------
-
-The development version of the bundle can be found at
-
- https://github.com/latex3/latex3
-
-for those people who are interested.
-
------------------------------------------------------------------------
-
-Any modification of this file should ensure that the copyright and
-license information is placed in the derived files.
-
-\fi
-
-\let\jobname\relax
-\input l3docstrip.dtx
-\askforoverwritefalse
-
-\preamble
-
-Copyright (C) 1990-2020 The LaTeX3 Project
-
-It may be distributed and/or modified under the conditions of
-the LaTeX Project Public License (LPPL), either version 1.3c of
-this license or (at your option) any later version. The latest
-version of this license is in the file:
-
- https://www.latex-project.org/lppl.txt
-
-This file is part of the "l3kernel bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
-\endpreamble
-% stop docstrip adding \endinput
-\postamble
-\endpostamble
-
-\keepsilent
-
-\generate
- {
- \file{l3format.ltx}
- {
- \from{l3bootstrap.dtx} {initex}
- \from{l3names.dtx} {initex}
- \from{l3basics.dtx} {initex}
- \from{l3expan.dtx} {initex}
- \from{l3quark.dtx} {initex}
- \from{l3tl.dtx} {initex}
- \from{l3str.dtx} {initex}
- \from{l3seq.dtx} {initex}
- % ======== FORMAT ONLY =========
- \from{l3alloc.dtx} {initex}
- % ==============================
- \from{l3int.dtx} {initex}
- \from{l3flag.dtx} {initex}
- \from{l3prg.dtx} {initex}
- \from{l3sys.dtx} {initex}
- \from{l3clist.dtx} {initex}
- \from{l3token.dtx} {initex}
- \from{l3prop.dtx} {initex}
- \from{l3msg.dtx} {initex}
- \from{l3file.dtx} {initex}
- \from{l3skip.dtx} {initex}
- \from{l3keys.dtx} {initex}
- \from{l3intarray.dtx} {initex}
- \from{l3fp.dtx} {initex}
- \from{l3fp-aux.dtx} {initex}
- \from{l3fp-traps.dtx} {initex}
- \from{l3fp-round.dtx} {initex}
- \from{l3fp-parse.dtx} {initex}
- \from{l3fp-assign.dtx} {initex}
- \from{l3fp-logic.dtx} {initex}
- \from{l3fp-basics.dtx} {initex}
- \from{l3fp-extended.dtx}{initex}
- \from{l3fp-expo.dtx} {initex}
- \from{l3fp-trig.dtx} {initex}
- \from{l3fp-convert.dtx} {initex}
- \from{l3fp-random.dtx} {initex}
- \from{l3fparray.dtx} {initex}
- \from{l3cctab.dtx} {initex}
- \from{l3sort.dtx} {initex}
- \from{l3str-convert.dtx}{initex}
- \from{l3tl-analysis.dtx}{initex}
- \from{l3regex.dtx} {initex}
- \from{l3box.dtx} {initex}
- \from{l3color-base.dtx} {initex}
- \from{l3coffins.dtx} {initex}
- \from{l3luatex.dtx} {initex,tex}
- \from{l3unicode.dtx} {initex}
- \from{l3text.dtx} {initex}
- \from{l3text-case.dtx} {initex}
- \from{l3text-purify.dtx}{initex}
- \from{l3candidates.dtx} {initex}
- % ======== FORMAT ONLY =========
- \from{l3final.dtx} {initex}
- % ==============================
- }
- }
-
-% ISO-8859 encodings.
-\generate{%
- \file{l3str-enc-iso88591.def} {\from{l3str-convert.dtx}{iso88591}}%
- \file{l3str-enc-iso88592.def} {\from{l3str-convert.dtx}{iso88592}}%
- \file{l3str-enc-iso88593.def} {\from{l3str-convert.dtx}{iso88593}}%
- \file{l3str-enc-iso88594.def} {\from{l3str-convert.dtx}{iso88594}}%
- \file{l3str-enc-iso88595.def} {\from{l3str-convert.dtx}{iso88595}}%
- \file{l3str-enc-iso88596.def} {\from{l3str-convert.dtx}{iso88596}}%
- \file{l3str-enc-iso88597.def} {\from{l3str-convert.dtx}{iso88597}}%
- \file{l3str-enc-iso88598.def} {\from{l3str-convert.dtx}{iso88598}}%
- \file{l3str-enc-iso88599.def} {\from{l3str-convert.dtx}{iso88599}}%
- \file{l3str-enc-iso885910.def} {\from{l3str-convert.dtx}{iso885910}}%
- \file{l3str-enc-iso885911.def} {\from{l3str-convert.dtx}{iso885911}}%
- \file{l3str-enc-iso885913.def} {\from{l3str-convert.dtx}{iso885913}}%
- \file{l3str-enc-iso885914.def} {\from{l3str-convert.dtx}{iso885914}}%
- \file{l3str-enc-iso885915.def} {\from{l3str-convert.dtx}{iso885915}}%
- \file{l3str-enc-iso885916.def} {\from{l3str-convert.dtx}{iso885916}}%
-}
-
-\generate{\file{l3debug.def}{\from{l3debug.dtx}{initex}}}
-\generate{\file{l3deprecation.def}{\from{l3deprecation.dtx}{initex,patches}}}
-
-\generate{\file{l3docstrip.tex}{\from{l3docstrip.dtx}{program}}}
-
-% Lua code (currently identical to the package-mode version)
-
-\def\MetaPrefix{--}
-\preamble
-
-Copyright (C) 1990-2020 The LaTeX3 Project
-
-It may be distributed and/or modified under the conditions of
-the LaTeX Project Public License (LPPL), either version 1.3c of
-this license or (at your option) any later version. The latest
-version of this license is in the file:
-
- https://www.latex-project.org/lppl.txt
-
-This file is part of the "l3kernel bundle" (The Work in LPPL)
-and all files in that bundle must be distributed together.
-
-\endpreamble
-\nopostamble
-\generate{\file{expl3.lua} {\from{l3luatex.dtx}{lua,package}}}
-\generate{\file{l3format.lua}{\from{l3luatex.dtx}{lua,initex}}}
-
-\endbatchfile
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index 73e28d4b3f..8f06b76ea4 100644
--- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
% \maketitle
%
% \begin{documentation}
@@ -52,7 +52,7 @@
% \section{\pkg{l3fp-assign} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -219,7 +219,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index 09a876ee8d..38fd8b1366 100644
--- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3fp-aux} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1296,7 +1296,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index 68cb42369d..ae77fc4be2 100644
--- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-basics} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -2168,7 +2168,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index a07e4fb982..e16a947e6c 100644
--- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\texttt{l3fp-convert} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -620,7 +620,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index aafc77e1a6..fc8789101d 100644
--- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-expo} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1369,7 +1369,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index 498da7895c..f7566ff062 100644
--- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-extended} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1263,7 +1263,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 13457604be..d36cbb3003 100644
--- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-logic} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -727,7 +727,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index c3125a8478..e56abc6bb1 100644
--- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-parse} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -800,7 +800,6 @@
{#2}
\exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1
}
-%<*package>
\cs_set_protected:Npn \@@_tmp:w #1
{
\cs_if_exist:NT #1
@@ -824,7 +823,6 @@
}
}
\exp_args:Nc \@@_tmp:w { @unexpandable@protect }
-%</package>
% \end{macrocode}
% \end{macro}
%
@@ -2889,17 +2887,15 @@
{ Arguments~in~#1#2~are~invalid. }
\__kernel_msg_new:nnn { kernel } { fp-infty-pi }
{ Math~command~#1 is~not~an~fp }
-%<*package>
\cs_if_exist:cT { @unexpandable@protect }
{
\__kernel_msg_new:nnn { kernel } { fp-robust-cmd }
{ Robust~command~#1 invalid~in~fp~expression! }
}
-%</package>
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index 062f0d59b4..6dd9a63d70 100644
--- a/macros/latex/contrib/l3kernel/l3fp-random.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-random} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -654,7 +654,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index ef2092959b..487f48fa7c 100644
--- a/macros/latex/contrib/l3kernel/l3fp-round.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3fp-round} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -582,7 +582,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index 40332fc340..8f7ef9afdc 100644
--- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
% \maketitle
%
% \begin{documentation}
@@ -52,7 +52,7 @@
% \section{\pkg{l3fp-traps} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -390,7 +390,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index a9c9600244..c5c85d20a3 100644
--- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -53,7 +53,7 @@
% \section{\pkg{l3fp-trig} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1688,7 +1688,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index b76089b5c6..f1743be720 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index be62eac38b..1a2775935b 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -115,7 +115,7 @@
% \section{\pkg{l3fparray} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -388,7 +388,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index 7384a5f257..ac08971cd0 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -1010,7 +1010,7 @@
% \section{\pkg{l3int} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1272,13 +1272,11 @@
% this is therefore accessed by name. (The same applies to \cs{newbox},
% \cs{newdimen} and so on.)
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \int_new:N #1
{
\__kernel_chk_if_free_cs:N #1
\cs:w newcount \cs_end: #1
}
-%</package>
\cs_generate_variant:Nn \int_new:N { c }
% \end{macrocode}
% \end{macro}
@@ -2581,7 +2579,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index 7a96ed2873..208ec1cfe5 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -166,7 +166,7 @@
% \section{\pkg{l3intarray} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -579,7 +579,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index c73b661cfc..793ea28031 100644
--- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -265,6 +265,27 @@
%
% \begin{function}
% {
+% \__kernel_msg_critical:nnnnnn ,
+% \__kernel_msg_critical:nnnnn ,
+% \__kernel_msg_critical:nnnn ,
+% \__kernel_msg_critical:nnn ,
+% \__kernel_msg_critical:nn ,
+% \__kernel_msg_critical:nnxxxx ,
+% \__kernel_msg_critical:nnxxx ,
+% \__kernel_msg_critical:nnxx ,
+% \__kernel_msg_critical:nnx
+% }
+% \begin{syntax}
+% \cs{__kernel_msg_critical:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four}
+% \end{syntax}
+% Issues kernel \meta{module} error \meta{message}, passing \meta{arg one}
+% to \meta{arg four} to the text-creating functions. After issuing a
+% critical error, \TeX{} stops reading the current input file.
+% Cannot be redirected.
+% \end{function}
+%
+% \begin{function}
+% {
% \__kernel_msg_error:nnnnnn ,
% \__kernel_msg_error:nnnnn ,
% \__kernel_msg_error:nnnn ,
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index 77fa7d1aff..9c5216ceb6 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -934,7 +934,7 @@
% \section{\pkg{l3keys} Implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Low-level interface}
@@ -1493,44 +1493,29 @@
%
% \subsubsection{Internal auxiliaries}
%
-% \begin{variable}{\s_@@_stop}
+% \begin{variable}{\s_@@_nil,\s_@@_mark,\s_@@_stop}
% Internal scan marks.
% \begin{macrocode}
+\scan_new:N \s_@@_nil
+\scan_new:N \s_@@_mark
\scan_new:N \s_@@_stop
% \end{macrocode}
% \end{variable}
%
-% \begin{variable}{\q_@@_nil,\q_@@_no_value}
+% \begin{variable}{\q_@@_no_value}
% Internal quarks.
% \begin{macrocode}
-\quark_new:N \q_@@_nil
\quark_new:N \q_@@_no_value
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}[pTF]{\@@_quark_if_nil:n}
+% \begin{macro}[pTF]{\@@_quark_if_no_value:N}
% Branching quark conditional.
% \begin{macrocode}
-\__kernel_quark_new_conditional:Nn \@@_quark_if_nil:n { TF }
\__kernel_quark_new_conditional:Nn \@@_quark_if_no_value:N { TF }
% \end{macrocode}
% \end{macro}
%
-% \begin{variable}{\q_@@_recursion_tail,\q_@@_recursion_stop}
-% Internal recursion quarks.
-% \begin{macrocode}
-\quark_new:N \q_@@_recursion_tail
-\quark_new:N \q_@@_recursion_stop
-% \end{macrocode}
-% \end{variable}
-%
-% \begin{macro}[EXP]{\@@_if_recursion_tail_stop:n}
-% Functions to query recursion quarks.
-% \begin{macrocode}
-\__kernel_quark_new_test:N \@@_if_recursion_tail_stop:n
-% \end{macrocode}
-% \end{macro}
-%
% \subsection{The key defining mechanism}
%
% \begin{macro}{\keys_define:nn}
@@ -1580,7 +1565,7 @@
\str_if_empty:NF \l_@@_property_str
{
\__kernel_msg_error:nnxx { kernel } { key-property-unknown }
- { \l_@@_property_str } { \l_keys_path_str }
+ \l_@@_property_str \l_keys_path_str
}
}
}
@@ -1590,53 +1575,59 @@
% \end{macro}
%
% \begin{macro}{\@@_property_find:n}
-% \begin{macro}{\@@_property_find:w}
+% \begin{macro}
+% {
+% \@@_property_find_auxi:w ,
+% \@@_property_find_auxii:w ,
+% \@@_property_find_auxiii:w ,
+% \@@_property_find_auxiv:w
+% }
% Searching for a property means finding the last |.| in the input,
% and storing the text before and after it. Everything is turned into
-% strings, so there is no problem using an \texttt{x}-type expansion.
+% strings, so there is no problem using an \texttt{x}-type expansion. Since
+% |\__keys_trim_spaces:n| will turn its argument into a string anyway, this
+% function uses \cs{cs_set_nopar:Npx} instead of \cs{tl_set:Nx} to gain some
+% speed.
% \begin{macrocode}
\cs_new_protected:Npn \@@_property_find:n #1
{
- \str_set:Nx \l_@@_property_str { \@@_trim_spaces:n {#1} }
- \exp_after:wN \@@_property_find:w \l_@@_property_str . .
- \s_@@_stop {#1}
+ \cs_set_nopar:Npx \l__keys_property_str { \__keys_trim_spaces:n { #1 } }
+ \exp_after:wN \@@_property_find_auxi:w \l__keys_property_str
+ \s_@@_nil \@@_property_find_auxii:w
+ . \s_@@_nil \@@_property_find_err:w
}
-\cs_new_protected:Npn \@@_property_find:w #1 . #2 . #3 \s_@@_stop #4
+\cs_new_protected:Npn \@@_property_find_auxi:w #1 . #2 \s_@@_nil #3
{
- \tl_if_blank:nTF {#3}
- {
- \str_clear:N \l_@@_property_str
- \__kernel_msg_error:nnn { kernel } { key-no-property } {#4}
- }
- {
- \str_if_eq:nnTF {#3} { . }
- {
- \str_set:Nx \l_keys_path_str
- {
- \str_if_empty:NF \l_@@_module_str
- { \l_@@_module_str / }
- \tl_trim_spaces:n {#1}
- }
- \str_set:Nn \l_@@_property_str { . #2 }
- }
- {
- \str_set:Nx \l_keys_path_str { \l_@@_module_str / #1 . #2 }
- \@@_property_search:w #3 \s_@@_stop
- }
- \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str
- }
+ #3 #1 \s_@@_mark #2 \s_@@_nil #3
}
-\cs_new_protected:Npn \@@_property_search:w #1 . #2 \s_@@_stop
+\cs_new_protected:Npn \@@_property_find_auxii:w
+ #1 \s_@@_mark #2 \s_@@_nil \@@_property_find_auxii:w . \s_@@_nil
+ \@@_property_find_err:w
{
- \str_if_eq:nnTF {#2} { . }
- {
- \str_set:Nx \l_keys_path_str { \l_keys_path_str }
- \str_set:Nn \l_@@_property_str { . #1 }
- }
- {
- \str_set:Nx \l_keys_path_str { \l_keys_path_str . #1 }
- \@@_property_search:w #2 \s_@@_stop
- }
+ \cs_set_nopar:Npx \l_keys_path_str
+ { \str_if_empty:NF \l__keys_module_str { \l__keys_module_str / } #1 }
+ \@@_property_find_auxi:w #2 \s_@@_nil \@@_property_find_auxiii:w . \s_@@_nil
+ \@@_property_find_auxiv:w
+ }
+\cs_new_protected:Npn \@@_property_find_auxiii:w #1 \s_@@_mark
+ {
+ \cs_set_nopar:Npx \l_keys_path_str { \l_keys_path_str . #1 }
+ \@@_property_find_auxi:w
+ }
+\cs_new_protected:Npn \@@_property_find_auxiv:w
+ #1 \s_@@_nil \@@_property_find_auxiii:w
+ \s_@@_mark \s_@@_nil \@@_property_find_auxiv:w
+ {
+ \cs_set_nopar:Npx \l__keys_property_str { . #1 }
+ \cs_set_nopar:Npx \l_keys_path_str
+ { \exp_after:wN \__keys_trim_spaces:n \exp_after:wN { \l_keys_path_str } }
+ \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str
+ }
+\cs_new_protected:Npn \@@_property_find_err:w
+ #1 \s_@@_nil #2 \@@_property_find_err:w
+ {
+ \str_clear:N \l__keys_property_str
+ \__kernel_msg_error:nnn { kernel } { key-no-property } {#1}
}
% \end{macrocode}
% \end{macro}
@@ -1658,9 +1649,8 @@
\l_@@_property_str \s_@@_stop
{ \use:c { \c_@@_props_root_str \l_@@_property_str } }
{
- \__kernel_msg_error:nnxx { kernel }
- { key-property-requires-value } { \l_@@_property_str }
- { \l_keys_path_str }
+ \__kernel_msg_error:nnxx { kernel } { key-property-requires-value }
+ \l_@@_property_str \l_keys_path_str
}
}
{ \use:c { \c_@@_props_root_str \l_@@_property_str } {#1} }
@@ -1690,7 +1680,7 @@
\@@_cmd_set:nn { \l_keys_path_str / unknown }
{
\__kernel_msg_error:nnx { kernel } { boolean-values-only }
- { \l_keys_key_str }
+ \l_keys_key_str
}
\@@_default_set:n { true }
}
@@ -1712,7 +1702,7 @@
\@@_cmd_set:nn { \l_keys_path_str / unknown }
{
\__kernel_msg_error:nnx { kernel } { boolean-values-only }
- { \l_keys_key_str }
+ \l_keys_key_str
}
\@@_default_set:n { true }
}
@@ -1741,7 +1731,7 @@
{ choice }
{
\__kernel_msg_error:nnxx { kernel } { nested-choice-key }
- { \l_keys_path_tl } { \@@_parent:o \l_keys_path_str }
+ \l_keys_path_tl { \@@_parent:o \l_keys_path_str }
}
{ \@@_choice_make_aux:N #1 }
}
@@ -1751,11 +1741,11 @@
{
\cs_set_nopar:cpn { \c_@@_type_root_str \l_keys_path_str }
{ choice }
- \@@_cmd_set:nn { \l_keys_path_str } { #1 {##1} }
+ \@@_cmd_set:nn \l_keys_path_str { #1 {##1} }
\@@_cmd_set:nn { \l_keys_path_str / unknown }
{
\__kernel_msg_error:nnxx { kernel } { key-choice-unknown }
- { \l_keys_path_str } {##1}
+ \l_keys_path_str {##1}
}
}
% \end{macrocode}
@@ -1886,7 +1876,8 @@
{ \@@_execute_inherit: }
{
\str_clear:N \l_@@_inherit_str
- \cs_if_exist_use:cT { \c_@@_code_root_str \l_keys_path_str } { {#1} }
+ \cs_if_exist:cT { \c_@@_code_root_str \l_keys_path_str }
+ { \@@_execute:nn \l_keys_path_str {#1} }
}
}
% \end{macrocode}
@@ -1900,8 +1891,7 @@
{
\@@_cmd_set:Vo \l_keys_path_str
{
- \exp_after:wN \keys_set:nn
- \exp_after:wN { \l_@@_module_str } {#1}
+ \exp_after:wN \keys_set:nn \exp_after:wN { \l_@@_module_str } {#1}
}
}
\cs_new_protected:Npn \@@_meta_make:nn #1#2
@@ -1916,11 +1906,9 @@
\cs_new_protected:Npn \@@_prop_put:Nn #1#2
{
\prop_if_exist:NF #1 { \prop_new:N #1 }
- \exp_after:wN \@@_find_key_module:NNw
- \exp_after:wN \l_@@_tmpa_tl
- \exp_after:wN \l_@@_tmpb_tl
- \l_keys_path_str / \s_@@_stop
- \@@_cmd_set:nx { \l_keys_path_str }
+ \exp_after:wN \@@_find_key_module:wNN \l_keys_path_str \s_@@_stop
+ \l_@@_tmpa_tl \l_@@_tmpb_tl
+ \@@_cmd_set:nx \l_keys_path_str
{
\exp_not:c { prop_ #2 put:Nnn }
\exp_not:N #1
@@ -1951,7 +1939,6 @@
%
% \begin{macro}{\@@_value_requirement:nn}
% \begin{macro}{\@@_validate_forbidden:, \@@_validate_required:}
-% \begin{macro}{\@@_validate_cleanup:w}
% Validating key input is done using a second function which runs before
% the main key code. Setting that up means setting it equal to a generic
% stub which does the check. This approach makes the lookup very fast at
@@ -1991,8 +1978,8 @@
\bool_if:NF \l_@@_no_value_bool
{
\__kernel_msg_error:nnxx { kernel } { value-forbidden }
- { \l_keys_path_str } { \l_keys_value_tl }
- \@@_validate_cleanup:w
+ \l_keys_path_str \l_keys_value_tl
+ \use_none:nnn
}
}
\cs_new_protected:Npn \@@_validate_required:
@@ -2000,15 +1987,13 @@
\bool_if:NT \l_@@_no_value_bool
{
\__kernel_msg_error:nnx { kernel } { value-required }
- { \l_keys_path_str }
- \@@_validate_cleanup:w
+ \l_keys_path_str
+ \use_none:nnn
}
}
-\cs_new_protected:Npn \@@_validate_cleanup:w #1 \cs_end: #2#3 { }
% \end{macrocode}
% \end{macro}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\@@_variable_set:NnnN, \@@_variable_set:cnnN}
% \begin{macro}{\@@_variable_set_required:NnnN, \@@_variable_set_required:cnnN}
@@ -2018,7 +2003,7 @@
\cs_new_protected:Npn \@@_variable_set:NnnN #1#2#3#4
{
\use:c { #2_if_exist:NF } #1 { \use:c { #2 _new:N } #1 }
- \@@_cmd_set:nx { \l_keys_path_str }
+ \@@_cmd_set:nx \l_keys_path_str
{
\exp_not:c { #2 _ #3 set:N #4 }
\exp_not:N #1
@@ -2110,7 +2095,7 @@
% \texttt{set} function.
% \begin{macrocode}
\cs_new_protected:cpn { \c_@@_props_root_str .code:n } #1
- { \@@_cmd_set:nn { \l_keys_path_str } {#1} }
+ { \@@_cmd_set:nn \l_keys_path_str {#1} }
% \end{macrocode}
% \end{macro}
%
@@ -2447,7 +2432,7 @@
\cs_new_protected:Npn \keys_set_known:nnN #1#2#3
{
\exp_args:No \@@_set_known:nnnnN
- \l_@@_unused_clist { \q_@@_no_value } {#1} {#2} #3
+ \l_@@_unused_clist \q_@@_no_value {#1} {#2} #3
}
\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , no }
\cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4
@@ -2460,11 +2445,11 @@
{
\clist_clear:N \l_@@_unused_clist
\@@_set_known:nnn {#2} {#3} {#4}
- \tl_set:Nx #5 { \exp_not:o { \l_@@_unused_clist } }
+ \tl_set:Nx #5 { \exp_not:o \l_@@_unused_clist }
\tl_set:Nn \l_@@_unused_clist {#1}
}
\cs_new_protected:Npn \keys_set_known:nn #1#2
- { \@@_set_known:nnn { \q_@@_no_value } {#1} {#2} }
+ { \@@_set_known:nnn \q_@@_no_value {#1} {#2} }
\cs_generate_variant:Nn \keys_set_known:nn { nV , nv , no }
\cs_new_protected:Npn \@@_set_known:nnn #1#2#3
{
@@ -2525,7 +2510,7 @@
{
\exp_args:No \@@_set_filter:nnnnnN
\l_@@_unused_clist
- { \q_@@_no_value } {#1} {#2} {#3} #4
+ \q_@@_no_value {#1} {#2} {#3} #4
}
\cs_generate_variant:Nn \keys_set_filter:nnnN { nnV , nnv , nno }
\cs_new_protected:Npn \keys_set_filter:nnnnN #1#2#3#4#5
@@ -2538,11 +2523,11 @@
{
\clist_clear:N \l_@@_unused_clist
\@@_set_filter:nnnn {#2} {#3} {#4} {#5}
- \tl_set:Nx #6 { \exp_not:o { \l_@@_unused_clist } }
+ \tl_set:Nx #6 { \exp_not:o \l_@@_unused_clist }
\tl_set:Nn \l_@@_unused_clist {#1}
}
\cs_new_protected:Npn \keys_set_filter:nnn #1#2#3
- {\@@_set_filter:nnnn { \q_@@_no_value } {#1} {#2} {#3} }
+ {\@@_set_filter:nnnn \q_@@_no_value {#1} {#2} {#3} }
\cs_generate_variant:Nn \keys_set_filter:nnn { nnV , nnv , nno }
\cs_new_protected:Npn \@@_set_filter:nnnn #1#2#3#4
{
@@ -2604,7 +2589,14 @@
%
% \begin{macro}{\@@_set_keyval:n, \@@_set_keyval:nn}
% \begin{macro}{\@@_set_keyval:nnn, \@@_set_keyval:onn}
-% \begin{macro}{\@@_find_key_module:NNw}
+% \begin{macro}{\@@_find_key_module:wNN}
+% \begin{macro}
+% {
+% \@@_find_key_module_auxi:Nw ,
+% \@@_find_key_module_auxii:Nw ,
+% \@@_find_key_module_auxiii:Nn ,
+% \@@_find_key_module_auxiv:Nw
+% }
% \begin{macro}{\@@_set_selective:}
% A shared system once again. First, set the current path and add a
% default if needed. There are then checks to see if the a value is
@@ -2638,30 +2630,46 @@
}
\str_clear:N \l_@@_module_str
\str_clear:N \l_@@_inherit_str
- \exp_after:wN \@@_find_key_module:NNw
- \exp_after:wN \l_@@_module_str
- \exp_after:wN \l_keys_key_str
- \l_keys_path_str / \s_@@_stop
+ \exp_after:wN \@@_find_key_module:wNN \l_keys_path_str \s_@@_stop
+ \l_@@_module_str \l_keys_key_str
\tl_set_eq:NN \l_keys_key_tl \l_keys_key_str
\@@_value_or_default:n {#3}
\bool_if:NTF \l_@@_selective_bool
- { \@@_set_selective: }
- { \@@_execute: }
+ \@@_set_selective:
+ \@@_execute:
\str_set:Nn \l_@@_module_str {#1}
}
\cs_generate_variant:Nn \@@_set_keyval:nnn { o }
-\cs_new_protected:Npn \@@_find_key_module:NNw #1#2#3 / #4 \s_@@_stop
+% \end{macrocode}
+% This function uses \cs{cs_set_nopar:Npx} internally for performance reasons,
+% the argument |#1| is already a string in every usage, so turning it into a
+% string again seems unnecessary.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_find_key_module:wNN #1 \s_@@_stop #2 #3
{
- \tl_if_blank:nTF {#4}
- { \str_set:Nn #2 {#3} }
- {
- \str_put_right:Nx #1
- {
- \str_if_empty:NF #1 { / }
- #3
- }
- \@@_find_key_module:NNw #1#2 #4 \s_@@_stop
- }
+ \@@_find_key_module_auxi:Nw #2 #1 \s_@@_nil \@@_find_key_module_auxii:Nw
+ / \s_@@_nil \@@_find_key_module_auxiv:Nw #3
+ }
+\cs_new_protected:Npn \@@_find_key_module_auxi:Nw #1 #2 / #3 \s_@@_nil #4
+ {
+ #4 #1 #2 \s_@@_mark #3 \s_@@_nil #4
+ }
+\cs_new_protected:Npn \@@_find_key_module_auxii:Nw
+ #1 #2 \s_@@_mark #3 \s_@@_nil \@@_find_key_module_auxii:Nw
+ {
+ \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 }
+ \@@_find_key_module_auxi:Nw #1 #3 \s_@@_nil \@@_find_key_module_auxiii:Nw
+ }
+\cs_new_protected:Npn \@@_find_key_module_auxiii:Nw #1 #2 \s_@@_mark
+ {
+ \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 }
+ \@@_find_key_module_auxi:Nw #1
+ }
+\cs_new_protected:Npn \@@_find_key_module_auxiv:Nw
+ #1 #2 \s_@@_nil #3 \s_@@_mark
+ \s_@@_nil \@@_find_key_module_auxiv:Nw #4
+ {
+ \cs_set_nopar:Npn #4 { #2 }
}
% \end{macrocode}
% If selective setting is active, there are a number of possible sub-cases
@@ -2679,8 +2687,8 @@
}
{
\bool_if:NTF \l_@@_filtered_bool
- { \@@_execute: }
- { \@@_store_unused: }
+ \@@_execute:
+ \@@_store_unused:
}
}
% \end{macrocode}
@@ -2699,20 +2707,20 @@
\str_if_eq:nnT {##1} {####1}
{
\bool_set_true:N \l_@@_tmp_bool
- \clist_map_break:n { \seq_map_break: }
+ \clist_map_break:n \seq_map_break:
}
}
}
\bool_if:NTF \l_@@_tmp_bool
{
\bool_if:NTF \l_@@_filtered_bool
- { \@@_store_unused: }
- { \@@_execute: }
+ \@@_store_unused:
+ \@@_execute:
}
{
\bool_if:NTF \l_@@_filtered_bool
- { \@@_execute: }
- { \@@_store_unused: }
+ \@@_execute:
+ \@@_store_unused:
}
}
% \end{macrocode}
@@ -2720,6 +2728,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@@_value_or_default:n}
% \begin{macro}{\@@_default_inherit:}
@@ -2765,7 +2774,7 @@
% \end{macro}
%
% \begin{macro}{\@@_execute:, \@@_execute_inherit:, \@@_execute_unknown:}
-% \begin{macro}[EXP]{\@@_execute:nn}
+% \begin{macro}[EXP]{\@@_execute:nn, \@@_execute:no}
% \begin{macro}{\@@_store_unused:,\@@_store_unused_aux:}
% Actually executing a key is done in two parts. First, look for the
% key itself, then look for the \texttt{unknown} key with the same
@@ -2778,8 +2787,7 @@
\cs_if_exist:cTF { \c_@@_code_root_str \l_keys_path_str }
{
\cs_if_exist_use:c { \c_@@_validate_root_str \l_keys_path_str }
- \cs:w \c_@@_code_root_str \l_keys_path_str \exp_after:wN \cs_end:
- \exp_after:wN { \l_keys_value_tl }
+ \@@_execute:no \l_keys_path_str \l_keys_value_tl
}
{
\cs_if_exist:cTF
@@ -2803,10 +2811,8 @@
{
\str_set:Nn \l_@@_inherit_str {##1}
\cs_if_exist_use:c { \c_@@_validate_root_str ##1 / \l_keys_key_str }
- \cs:w \c_@@_code_root_str ##1 / \l_keys_key_str
- \exp_after:wN \cs_end: \exp_after:wN
- { \l_keys_value_tl }
- \clist_map_break:n { \use_none:n }
+ \@@_execute:no { ##1 / \l_keys_key_str } \l_keys_value_tl
+ \clist_map_break:n \use_none:n
}
}
\@@_execute_unknown:
@@ -2818,24 +2824,35 @@
{
\cs_if_exist:cTF
{ \c_@@_code_root_str \l_@@_module_str / unknown }
- {
- \cs:w \c_@@_code_root_str \l_@@_module_str / unknown
- \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl }
- }
+ { \@@_execute:no { \l_@@_module_str / unknown } \l_keys_value_tl }
{
\__kernel_msg_error:nnxx { kernel } { key-unknown }
- { \l_keys_path_str } { \l_@@_module_str }
+ \l_keys_path_str \l_@@_module_str
}
}
}
+% \end{macrocode}
+% A key's code is in the control sequence with csname
+% \cs{c_@@_code_root_str} |#1|. We expand it once to get the
+% replacement text (with argument |#2|) and call \cs{use:n}
+% with this replacement as its argument. This ensures that any
+% undefined control sequence error in the key's code will lead to an
+% error message of the form |<argument>|\ldots{}\meta{control
+% sequence} in which one can read the (undefined) \meta{control
+% sequence} in full, rather than an error message that starts with the
+% potentially very long key name, which would make the (undefined)
+% \meta{control sequence} be truncated or sometimes completely hidden.
+% See \url{https://github.com/latex3/latex2e/issues/351}.
+% \begin{macrocode}
\cs_new:Npn \@@_execute:nn #1#2
+ { \@@_execute:no {#1} { \prg_do_nothing: #2 } }
+\cs_new:Npn \@@_execute:no #1#2
{
- \cs_if_exist:cTF { \c_@@_code_root_str #1 }
+ \exp_args:NNo \exp_args:No \use:n
{
\cs:w \c_@@_code_root_str #1 \exp_after:wN \cs_end:
- \exp_after:wN { \l_keys_value_tl }
+ \exp_after:wN {#2}
}
- {#2}
}
% \end{macrocode}
% When there is no relative path, things here are easy: just save the key
@@ -2850,7 +2867,7 @@
{
\clist_put_right:Nx \l_@@_unused_clist
{
- \exp_not:o \l_keys_key_str
+ \l_keys_key_str
\bool_if:NF \l_@@_no_value_bool
{ = { \exp_not:o \l_keys_value_tl } }
}
@@ -2860,7 +2877,7 @@
{
\clist_put_right:Nx \l_@@_unused_clist
{
- \exp_not:o \l_keys_path_str
+ \l_keys_path_str
\bool_if:NF \l_@@_no_value_bool
{ = { \exp_not:o \l_keys_value_tl } }
}
@@ -2917,7 +2934,7 @@
\cs_new:Npn \@@_choice_find:n #1
{
\str_if_empty:NTF \l_@@_inherit_str
- { \@@_choice_find:nn { \l_keys_path_str } {#1} }
+ { \@@_choice_find:nn \l_keys_path_str {#1} }
{
\@@_choice_find:nn
{ \l_@@_inherit_str / \l_keys_key_str } {#1}
@@ -2926,8 +2943,8 @@
\cs_new:Npn \@@_choice_find:nn #1#2
{
\cs_if_exist:cTF { \c_@@_code_root_str #1 / \@@_trim_spaces:n {#2} }
- { \use:c { \c_@@_code_root_str #1 / \@@_trim_spaces:n {#2} } {#2} }
- { \use:c { \c_@@_code_root_str #1 / unknown } {#2} }
+ { \@@_execute:nn { #1 / \@@_trim_spaces:n {#2} } {#2} }
+ { \@@_execute:nn { #1 / unknown } {#2} }
}
\cs_new:Npn \@@_multichoice_find:n #1
{ \clist_map_function:nN {#1} \@@_choice_find:n }
@@ -2938,23 +2955,35 @@
%
% \subsection{Utilities}
%
-% \begin{macro}[EXP]{\@@_parent:n, \@@_parent:o}
-% \begin{macro}[EXP]{\@@_parent:w}
+% \begin{macro}[EXP]{\@@_parent:o}
+% \begin{macro}[EXP]
+% {
+% \@@_parent_auxi:w ,
+% \@@_parent_auxii:w ,
+% \@@_parent_auxiii:n ,
+% \@@_parent_auxiv:w
+% }
% Used to strip off the ending part of the key path after the last~|/|.
% \begin{macrocode}
-\cs_new:Npn \@@_parent:n #1
- { \@@_parent:w #1 / / \s_@@_stop { } }
-\cs_generate_variant:Nn \@@_parent:n { o }
-\cs_new:Npn \@@_parent:w #1 / #2 / #3 \s_@@_stop #4
+\cs_new:Npn \@@_parent:o #1
+ {
+ \exp_after:wN \@@_parent_auxi:w #1 \q_nil \@@_parent_auxii:w
+ / \q_nil \@@_parent_auxiv:w
+ }
+\cs_new:Npn \@@_parent_auxi:w #1 / #2 \q_nil #3
+ {
+ #3 { #1 } #2 \q_nil #3
+ }
+\cs_new:Npn \@@_parent_auxii:w #1 #2 \q_nil \@@_parent_auxii:w
+ {
+ #1 \@@_parent_auxi:w #2 \q_nil \@@_parent_auxiii:n
+ }
+\cs_new:Npn \@@_parent_auxiii:n #1
+ {
+ / #1 \@@_parent_auxi:w
+ }
+\cs_new:Npn \@@_parent_auxiv:w #1 \q_nil \@@_parent_auxiv:w
{
- \tl_if_blank:nTF {#2}
- {
- \tl_if_blank:nF {#4}
- { \use_none:n #4 }
- }
- {
- \@@_parent:w #2 / #3 \s_@@_stop { #4 / #1 }
- }
}
% \end{macrocode}
% \end{macro}
@@ -2968,29 +2997,43 @@
% \@@_trim_spaces_auxiii:w
% }
% Space stripping has to allow for the fact that the key here might have
-% several parts, and spaces need to be stripped from each part.
+% several parts, and spaces need to be stripped from each part. Since the key
+% name is turned into a string groups can't be stripped accidentally and the
+% precautions of \cs{tl_trim_spaces:n} aren't necessary, in this case it is
+% much faster to just directly strip spaces around |/|.
% \begin{macrocode}
-\cs_new:Npn \@@_trim_spaces:n #1
- {
- \exp_after:wN \@@_trim_spaces_auxi:w \tl_to_str:n {#1}
- / \q_@@_nil \s_@@_stop
- }
-\cs_new:Npn \@@_trim_spaces_auxi:w #1 / #2 \s_@@_stop
+\group_begin:
+ \cs_set:Npn \@@_tmp:n #1
+ {
+ \cs_new:Npn \@@_trim_spaces:n ##1
+ {
+ \exp_after:wN \@@_trim_spaces_auxi:w \tl_to_str:n { / ##1 } /
+ \s_@@_nil \@@_trim_spaces_auxi:w
+ \s_@@_mark \@@_trim_spaces_auxii:w
+ #1 / #1
+ \s_@@_nil \@@_trim_spaces_auxii:w
+ \s_@@_mark \@@_trim_spaces_auxiii:w
+ }
+ }
+ \@@_tmp:n { ~ }
+\group_end:
+\cs_new:Npn \@@_trim_spaces_auxi:w #1 ~ / #2 \s_@@_nil #3
{
- \@@_quark_if_nil:nTF {#2}
- { \tl_trim_spaces:n {#1} }
- { \@@_trim_spaces_auxii:w #1 / #2 }
+ #3 #1 / #2 \s_@@_nil #3
}
-\cs_new:Npn \@@_trim_spaces_auxii:w #1 / #2 / \q_@@_nil
+\cs_new:Npn \@@_trim_spaces_auxii:w #1 / ~ #2 \s_@@_mark #3
{
- \tl_trim_spaces:n {#1}
- \@@_trim_spaces_auxiii:w #2 / \q_@@_recursion_tail / \q_@@_recursion_stop
+ #3 #1 / #2 \s_@@_mark #3
}
-\cs_set:Npn \@@_trim_spaces_auxiii:w #1 /
+\cs_new:Npn \@@_trim_spaces_auxiii:w
+ / #1 /
+ \s_@@_nil \@@_trim_spaces_auxi:w
+ \s_@@_mark \@@_trim_spaces_auxii:w
+ /
+ \s_@@_nil \@@_trim_spaces_auxii:w
+ \s_@@_mark \@@_trim_spaces_auxiii:w
{
- \@@_if_recursion_tail_stop:n {#1}
- / \tl_trim_spaces:n { #1 }
- \@@_trim_spaces_auxiii:w
+ #1
}
% \end{macrocode}
% \end{macro}
@@ -3102,7 +3145,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
%\end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index c0fbef3745..33d3749515 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index 298ecee05e..01686ced0d 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -216,7 +216,7 @@
% \section{\pkg{l3luatex} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Breaking out to \Lua{}}
@@ -556,43 +556,12 @@ l3kernel.shellescape = shellescape
% \end{macrocode}
% \end{macro}
%
-% \subsection{Generic \Lua{} and font support}
-%
-% \begin{macrocode}
-%<*initex>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<@@=alloc>
-% \end{macrocode}
-%
-% A small amount of generic code is used by almost all \LuaTeX{} material so
-% needs to be loaded by the format.
-% \begin{macrocode}
-attribute_count_name = "g_@@_attribute_int"
-bytecode_count_name = "g_@@_bytecode_int"
-chunkname_count_name = "g_@@_chunkname_int"
-whatsit_count_name = "g_@@_whatsit_int"
-require("ltluatex")
-% \end{macrocode}
-%
-% With the above available the font loader code used by plain \TeX{} and
-% \LaTeXe{} when used with \LuaTeX{} can be loaded here. This is thus being
-% treated more-or-less as part of the engine itself.
-% \begin{macrocode}
-require("luaotfload-main")
-local _void = luaotfload.main()
-% \end{macrocode}
-% \begin{macrocode}
-%</initex>
-% \end{macrocode}
-%
% \begin{macrocode}
%</lua>
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
%\end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index 5cbc7e9b09..f95f4ddabd 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -564,7 +564,7 @@
% \section{\pkg{l3msg} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -901,12 +901,8 @@
% \subsection{Displaying messages}
%
% \LaTeX{} is handling error messages and so the \TeX{} ones are disabled.
-% This is already done by the \LaTeXe{} kernel, so to avoid messing up any
-% deliberate change by a user this is only set in format mode.
% \begin{macrocode}
-%<*initex>
\int_gset:Nn \tex_errorcontextlines:D { -1 }
-%</initex>
% \end{macrocode}
%
% \begin{macro}[EXP]
@@ -974,12 +970,7 @@
{
\prop_if_in:NnTF \g_msg_module_type_prop {#1}
{ \prop_item:Nn \g_msg_module_type_prop {#1} }
-%<*initex>
- { Module }
-%</initex>
-%<*package>
{ Package }
-%</package>
}
% \end{macrocode}
% \end{macro}
@@ -1404,7 +1395,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_use:nnnnnnn #1#2#3#4#5#6#7
{
-%<package> \cs_if_exist_use:N \conditionally@traceoff
+ \cs_if_exist_use:N \conditionally@traceoff
\msg_if_exist:nnTF {#2} {#3}
{
\@@_class_chk_exist:nT {#1}
@@ -1422,7 +1413,7 @@
}
}
{ \__kernel_msg_error:nnxx { kernel } { message-unknown } {#2} {#3} }
-%<package> \cs_if_exist_use:N \conditionally@traceon
+ \cs_if_exist_use:N \conditionally@traceon
}
\cs_new_protected:Npn \@@_use_code: { }
% \end{macrocode}
@@ -1665,23 +1656,32 @@
%
% \begin{macro}
% {
-% \__kernel_msg_fatal:nnnnnn ,
-% \__kernel_msg_fatal:nnnnn ,
-% \__kernel_msg_fatal:nnnn ,
-% \__kernel_msg_fatal:nnn ,
-% \__kernel_msg_fatal:nn ,
-% \__kernel_msg_fatal:nnxxxx ,
-% \__kernel_msg_fatal:nnxxx ,
-% \__kernel_msg_fatal:nnxx ,
-% \__kernel_msg_fatal:nnx ,
-% \__kernel_msg_error:nnnnnn ,
-% \__kernel_msg_error:nnnnn ,
-% \__kernel_msg_error:nnnn ,
-% \__kernel_msg_error:nnn ,
-% \__kernel_msg_error:nn ,
-% \__kernel_msg_error:nnxxxx ,
-% \__kernel_msg_error:nnxxx ,
-% \__kernel_msg_error:nnxx ,
+% \__kernel_msg_fatal:nnnnnn ,
+% \__kernel_msg_fatal:nnnnn ,
+% \__kernel_msg_fatal:nnnn ,
+% \__kernel_msg_fatal:nnn ,
+% \__kernel_msg_fatal:nn ,
+% \__kernel_msg_fatal:nnxxxx ,
+% \__kernel_msg_fatal:nnxxx ,
+% \__kernel_msg_fatal:nnxx ,
+% \__kernel_msg_fatal:nnx ,
+% \__kernel_msg_critical:nnnnnn ,
+% \__kernel_msg_critical:nnnnn ,
+% \__kernel_msg_critical:nnnn ,
+% \__kernel_msg_critical:nnn ,
+% \__kernel_msg_critical:nn ,
+% \__kernel_msg_critical:nnxxxx ,
+% \__kernel_msg_critical:nnxxx ,
+% \__kernel_msg_critical:nnxx ,
+% \__kernel_msg_critical:nnx ,
+% \__kernel_msg_error:nnnnnn ,
+% \__kernel_msg_error:nnnnn ,
+% \__kernel_msg_error:nnnn ,
+% \__kernel_msg_error:nnn ,
+% \__kernel_msg_error:nn ,
+% \__kernel_msg_error:nnxxxx ,
+% \__kernel_msg_error:nnxxx ,
+% \__kernel_msg_error:nnxx ,
% \__kernel_msg_error:nnx
% }
% Neither fatal kernel errors nor kernel errors can be redirected. We
@@ -1691,6 +1691,7 @@
% errors.
% \begin{macrocode}
\@@_kernel_class_new:nN { fatal } \@@_fatal_code:nnnnnn
+ \@@_kernel_class_new:nN { critical } \@@_critical_code:nnnnnn
\cs_undefine:N \__kernel_msg_error:nnxx
\cs_undefine:N \__kernel_msg_error:nnx
\cs_undefine:N \__kernel_msg_error:nn
@@ -1977,28 +1978,15 @@
% \texttt{log-functions}, or on the contrary if debugging is turned off.
% In format mode the error is somewhat different.
% \begin{macrocode}
-%<*package>
-\__kernel_msg_new:nnnn { kernel } { enable-debug }
- { To~use~'#1'~load~expl3~with~the~'enable-debug'~option. }
- {
- The~function~'#1'~will~be~ignored~because~it~can~only~work~if~
- some~internal~functions~in~expl3~have~been~appropriately~
- defined.~This~only~happens~if~one~of~the~options~
- 'enable-debug',~'check-declarations'~or~'log-functions'~was~
- given~when~loading~expl3.
- }
-%</package>
-%<*initex>
\__kernel_msg_new:nnnn { kernel } { enable-debug }
- { '#1'~cannot~be~used~in~format~mode. }
+ { To~use~'#1'~set~the~'enable-debug'~option. }
{
The~function~'#1'~will~be~ignored~because~it~can~only~work~if~
some~internal~functions~in~expl3~have~been~appropriately~
- defined.~This~only~happens~in~package~mode~(and~only~if~one~of~
- the~options~'enable-debug',~'check-declarations'~or~'log-functions'~
- was~given~when~loading~expl3.
+ defined.~This~only~happens~if~one~of~the~options~
+ 'enable-debug',~'check-declarations'~or~'log-functions'~was~
+ given~as~an~option:~see~the~main~expl3~documentation.
}
-%</initex>
% \end{macrocode}
%
% Some errors only appear in expandable settings,
@@ -2235,7 +2223,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index 03a9f2ae2b..d070bb2952 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,6 @@
% \begin{itemize}
% \item defines new names for all \TeX{} primitives;
% \item switches to the category code r{\'e}gime for programming;
-% \item provides support settings for building the code as a \TeX{} format.
% \end{itemize}
%
% This module is entirely dedicated to primitives, which should not be
@@ -76,7 +75,7 @@
% \section{\pkg{l3names} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% The prefix here is \texttt{kernel}. A few places need |@@| to be left
@@ -86,8 +85,7 @@
% \end{macrocode}
%
% The code here simply renames all of the primitives to new, internal,
-% names. In format mode, it also deletes all of the existing names (although
-% some do come back later).
+% names.
%
% The \tn{let} primitive is renamed by hand first as it is essential for
% the entire process to follow. This also uses \tn{global}, as that way
@@ -104,23 +102,17 @@
% \end{macrocode}
%
% \begin{macro}{\@@_primitive:NN}
-% A temporary function to actually do the renaming. This also allows the
-% original names to be removed in format mode.
+% A temporary function to actually do the renaming.
% \begin{macrocode}
\long \def \@@_primitive:NN #1#2
- {
- \tex_global:D \tex_let:D #2 #1
-%<*initex>
- \tex_global:D \tex_let:D #1 \tex_undefined:D
-%</initex>
- }
+ { \tex_global:D \tex_let:D #2 #1 }
% \end{macrocode}
%\end{macro}
%
% To allow extracting \enquote{just the names}, a bit of DocStrip fiddling.
% \begin{macrocode}
-%</initex|package>
-%<*initex|names|package>
+%</package>
+%<*names|package>
% \end{macrocode}
%
% In the current incarnation of this package, all \TeX{} primitives
@@ -675,8 +667,8 @@
% for \LuaTeX{} tracking all of that would be hard. Instead, we now check that
% we only save primitives if they actually exist.
% \begin{macrocode}
-%</initex|names|package>
-%<*initex|package>
+%</names|package>
+%<*package>
\tex_long:D \tex_def:D \use_ii:nn #1#2 {#2}
\tex_long:D \tex_def:D \use_none:n #1 { }
\tex_long:D \tex_def:D \@@_primitive:NN #1#2
@@ -685,12 +677,9 @@
\tex_expandafter:D \use_ii:nn
\tex_fi:D
\use_none:n { \tex_global:D \tex_let:D #2 #1 }
-%<*initex>
- \tex_global:D \tex_let:D #1 \tex_undefined:D
-%</initex>
}
-%</initex|package>
-%<*initex|names|package>
+%</package>
+%<*names|package>
% \end{macrocode}
% \XeTeX{}-specific primitives. Note that \XeTeX{}'s \tn{strcmp} is
% handled earlier and is \enquote{rolled up} into \tn{pdfstrcmp}.
@@ -1197,8 +1186,8 @@
% \end{macrocode}
% End of the \enquote{just the names} part of the source.
% \begin{macrocode}
-%</initex|names|package>
-%<*initex|package>
+%</names|package>
+%<*package>
% \end{macrocode}
%
% The job is done: close the group (using the primitive renamed!).
@@ -1212,7 +1201,6 @@
% At the beginning of the \LaTeXe{} format, the primitives \tn{end} and
% \tn{input} are renamed, and only later on the other ones.
% \begin{macrocode}
-%<*package>
\tex_ifdefined:D \@@@@end
\tex_let:D \tex_end:D \@@@@end
\tex_let:D \tex_input:D \@@@@input
@@ -1368,7 +1356,6 @@
\tex_let:D \tex_mapfile:D \tex_undefined:D
\tex_let:D \tex_mapline:D \tex_undefined:D
\tex_fi:D
-%</package>
% \end{macrocode}
% A few packages do unfortunate things to date-related primitives.
% \begin{macrocode}
@@ -1403,13 +1390,11 @@
% confusing. Removing them means that \cs{tex_pdftexversion:D} is
% a marker for \pdfTeX{} alone: useful in engine-dependent code later.
% \begin{macrocode}
-%<*initex|package>
\tex_ifdefined:D \tex_luatexversion:D
\tex_let:D \tex_pdftexbanner:D \tex_undefined:D
\tex_let:D \tex_pdftexrevision:D \tex_undefined:D
\tex_let:D \tex_pdftexversion:D \tex_undefined:D
\tex_fi:D
-%</initex|package>
% \end{macrocode}
%
% For \ConTeXt{}, two tests are needed. Both Mark~II and Mark~IV move several
@@ -1417,7 +1402,6 @@
% as a marker. For Mark~IV, a few more primitives are moved: they are
% implemented using some Lua code in the current \ConTeXt{}.
% \begin{macrocode}
-%<*package>
\tex_ifdefined:D \normalend
\tex_let:D \tex_end:D \normalend
\tex_let:D \tex_everyjob:D \normaleveryjob
@@ -1444,11 +1428,10 @@
\tex_let:D \tex_middle:D \normalmiddle
\tex_let:D \tex_right:D \normalright
\tex_fi:D
-%</package>
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf
index 9463b85375..f37b45a703 100644
--- a/macros/latex/contrib/l3kernel/l3news.pdf
+++ b/macros/latex/contrib/l3kernel/l3news.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf
index 5c3bb76914..03f8ad6669 100644
--- a/macros/latex/contrib/l3kernel/l3news01.pdf
+++ b/macros/latex/contrib/l3kernel/l3news01.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf
index 0d80eae081..1495f21dcd 100644
--- a/macros/latex/contrib/l3kernel/l3news02.pdf
+++ b/macros/latex/contrib/l3kernel/l3news02.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf
index 29264d3578..d18a6f04fb 100644
--- a/macros/latex/contrib/l3kernel/l3news03.pdf
+++ b/macros/latex/contrib/l3kernel/l3news03.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf
index 1b990e3889..717b0aa96b 100644
--- a/macros/latex/contrib/l3kernel/l3news04.pdf
+++ b/macros/latex/contrib/l3kernel/l3news04.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf
index ab75e4b939..fc12886e94 100644
--- a/macros/latex/contrib/l3kernel/l3news05.pdf
+++ b/macros/latex/contrib/l3kernel/l3news05.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf
index 95606ad096..858b05d977 100644
--- a/macros/latex/contrib/l3kernel/l3news06.pdf
+++ b/macros/latex/contrib/l3kernel/l3news06.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf
index a51e4512e4..58479d7dc1 100644
--- a/macros/latex/contrib/l3kernel/l3news07.pdf
+++ b/macros/latex/contrib/l3kernel/l3news07.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf
index 45e221f9ba..3d8c621445 100644
--- a/macros/latex/contrib/l3kernel/l3news08.pdf
+++ b/macros/latex/contrib/l3kernel/l3news08.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf
index c2a1cc1816..1ae9972b0e 100644
--- a/macros/latex/contrib/l3kernel/l3news09.pdf
+++ b/macros/latex/contrib/l3kernel/l3news09.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf
index af9d89b61a..4b5e51d743 100644
--- a/macros/latex/contrib/l3kernel/l3news10.pdf
+++ b/macros/latex/contrib/l3kernel/l3news10.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf
index c9a93fa975..7170e1db61 100644
--- a/macros/latex/contrib/l3kernel/l3news11.pdf
+++ b/macros/latex/contrib/l3kernel/l3news11.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf
index cc045f3a19..a1f3d50fef 100644
--- a/macros/latex/contrib/l3kernel/l3news12.pdf
+++ b/macros/latex/contrib/l3kernel/l3news12.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.csv b/macros/latex/contrib/l3kernel/l3prefixes.csv
index bcf02f23b6..1ec250856c 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.csv
+++ b/macros/latex/contrib/l3kernel/l3prefixes.csv
@@ -20,6 +20,7 @@ bearwear,bearwear,Ulrike Fischer,https://github.com/u-fischer/bearwear,https://g
bool,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
box,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
bxjh,BXjaholiday,Takuto Asakura,https://github.com/wtsnjp/BXjaholiday,https://github.com/wtsnjp/BXjaholiday.git,https://github.com/wtsnjp/BXjaholiday/issues,2018-02-02,2019-02-02,
+cascade,cascade,F. Pantigny,,,,2020-07-21,2020-07-21,
catcode,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
cctab,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-28,2012-09-28,
cellprops,cellprops,Julien Rivaud,,,,2018-06-13,2018-06-13,
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index 9b9fc68466..ed6fc27f00 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.pdf
+++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index c1f794e015..c993560bf7 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -770,7 +770,7 @@
% \TestFiles{m3prg001.lvt,m3prg002.lvt,m3prg003.lvt}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Primitive conditionals}
@@ -1648,13 +1648,12 @@
%
% \begin{macro}{\prg_break_point:}
% \begin{macro}{\prg_break:, \prg_break:n}
-% Also done in \pkg{l3basics} as in format mode these are needed within
-% \pkg{l3alloc}.
+% Also done in \pkg{l3basics}.
% \end{macro}
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index 790f0e3b31..d8923d2177 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -525,7 +525,7 @@
% \TestFiles{m3prop001, m3prop002, m3prop003, m3prop004, m3show001}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1369,7 +1369,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index 62474447ef..d0adf2a00c 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -354,7 +354,7 @@
% \TestFiles{m3quark001.lvt}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Quarks}
@@ -1003,7 +1003,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index 3820ecdb67..dcc408e48b 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -811,7 +811,7 @@
% \section{\pkg{l3regex} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -6716,7 +6716,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index bd935c6f60..b0a1638170 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -988,7 +988,7 @@
% \TestFiles{m3seq002,m3seq003}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -2357,7 +2357,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index a87f940938..9987d4f57c 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -1065,7 +1065,7 @@
% \section{\pkg{l3skip} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1109,13 +1109,11 @@
% \begin{macro}{\dim_new:N, \dim_new:c}
% Allocating \meta{dim} registers \ldots
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \dim_new:N #1
{
\__kernel_chk_if_free_cs:N #1
\cs:w newdimen \cs_end: #1
}
-%</package>
\cs_generate_variant:Nn \dim_new:N { c }
% \end{macrocode}
% \end{macro}
@@ -1793,13 +1791,11 @@
% \begin{macro}{\skip_new:N, \skip_new:c}
% Allocation of a new internal registers.
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \skip_new:N #1
{
\__kernel_chk_if_free_cs:N #1
\cs:w newskip \cs_end: #1
}
-%</package>
\cs_generate_variant:Nn \skip_new:N { c }
% \end{macrocode}
% \end{macro}
@@ -2044,13 +2040,11 @@
% \begin{macro}{\muskip_new:N, \muskip_new:c}
% And then we add muskips.
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \muskip_new:N #1
{
\__kernel_chk_if_free_cs:N #1
\cs:w newmuskip \cs_end: #1
}
-%</package>
\cs_generate_variant:Nn \muskip_new:N { c }
% \end{macrocode}
% \end{macro}
@@ -2242,7 +2236,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index b84c2e298a..808d6214d0 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -112,7 +112,7 @@
% \section{\pkg{l3sort} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -271,12 +271,8 @@
% In \ConTeXt{} MkIV the range is from
% $|\c_syst_last_allocated_toks|+1$ to \cs{c_max_register_int}, and in
% MkII it is from $|\lastallocatedtoks|+1$ to \cs{c_max_register_int}.
-% In all these cases, call \cs{@@_shrink_range:}. The \LaTeX3 format
-% mode is easiest: no \tn{toks} are ever allocated so available
-% \tn{toks} range from $0$ to \cs{c_max_register_int} and we
-% precompute the result of \cs{@@_shrink_range:}.
+% In all these cases, call \cs{@@_shrink_range:}.
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \@@_compute_range:
{
\int_set:Nn \l_@@_min_int { \tex_count:D 15 + 1 }
@@ -322,17 +318,6 @@
}
}
}
-%</package>
-%<*initex>
-\int_const:Nn \c_@@_max_length_int
- { ( \c_max_register_int + 1 ) * 3 / 4 }
-\cs_new_protected:Npn \@@_compute_range:
- {
- \int_set:Nn \l_@@_min_int { 0 }
- \int_set:Nn \l_@@_true_max_int { \c_max_register_int + 1 }
- \int_set:Nn \l_@@_max_int { \c_@@_max_length_int }
- }
-%</initex>
% \end{macrocode}
% \end{variable}
% \end{macro}
@@ -352,7 +337,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_main:NNNn #1#2#3#4
{
-%<package> \@@_disable_toksdef:
+ \@@_disable_toksdef:
\@@_compute_range:
\int_set_eq:NN \l_@@_top_int \l_@@_min_int
#1 #3
@@ -1036,7 +1021,6 @@
% \pkg{l3sort}. In format mode, none of this is needed since there is
% no \tn{toks} allocator.
% \begin{macrocode}
-%<*package>
\cs_new_protected:Npn \@@_disable_toksdef:
{ \cs_set_eq:NN \toksdef \@@_disabled_toksdef:n }
\cs_new_protected:Npn \@@_disabled_toksdef:n #1
@@ -1054,7 +1038,6 @@
\iow_char:N\\newtoks~
or~a~similar~command.~The~list~will~not~be~sorted.
}
-%</package>
% \end{macrocode}
% \end{macro}
%
@@ -1103,7 +1086,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index e57c165f1b..324066cd41 100644
--- a/macros/latex/contrib/l3kernel/l3str-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -249,7 +249,7 @@
% \section{\pkg{l3str-convert} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -2654,7 +2654,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \subsubsection{\textsc{iso 8859} support}
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index 539881e139..466519ac8c 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -857,7 +857,7 @@
% \section{\pkg{l3str} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -2022,7 +2022,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index 575770b6c8..271e8e5916 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.pdf
+++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex
index 0d2028f2c2..9124a30577 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.tex
+++ b/macros/latex/contrib/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-07-17}
+\date{Released 2020-08-07}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index 76dc0f00c9..1c33b67b33 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
index 58824c3b4b..4c8fe53915 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-07-17}
+\date{Released 2020-08-07}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index b15b61d521..16cdfe6f3d 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -300,7 +300,7 @@
% \subsection{Kernel code}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsubsection{Detecting the engine}
@@ -874,7 +874,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
%\end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index 5826dda253..3b214dcca7 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex
index 90e2c3c768..3ac84ac64e 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.tex
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-07-17}
+\date{Released 2020-08-07}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx
index a3dde63359..0f56576b23 100644
--- a/macros/latex/contrib/l3kernel/l3text-case.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3text-case} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1584,7 +1584,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx
index c48ac585a2..9978eb3cc0 100644
--- a/macros/latex/contrib/l3kernel/l3text-purify.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -56,7 +56,7 @@
% \section{\pkg{l3text-purify} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -810,7 +810,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index 2946a48df3..b1246336da 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -270,7 +270,7 @@
% \section{\pkg{l3text} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -515,7 +515,6 @@
% Special cases for accents and letter-like symbols, which in some cases will
% need to be converted further.
% \begin{macrocode}
-%<*package>
\tl_new:N \l_text_accents_tl
\tl_set:Nn \l_text_accents_tl
{ \` \' \^ \~ \= \u \. \" \r \H \v \d \c \k \b \t }
@@ -534,7 +533,6 @@
\SS \ss
\TH \th
}
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -566,10 +564,8 @@
% Commands which need not to expand.
% \begin{macrocode}
\tl_new:N \l_text_expand_exclude_tl
-%<*package>
\tl_set:Nn \l_text_expand_exclude_tl
{ \begin \cite \end \label \ref }
-%</package>
% \end{macrocode}
% \end{variable}
%
@@ -862,13 +858,6 @@
% \begin{macrocode}
\cs_new:Npn \@@_expand_exclude:N #1
{
-%<*initex>
- \exp_after:wN \@@_expand_exclude:NN
- \l_text_math_arg_tl
- #1
- \q_@@_recursion_tail \q_@@_recursion_stop
-%</initex>
-%<*package>
\exp_args:Ne \@@_expand_exclude:nN
{
\exp_not:V \l_text_math_arg_tl
@@ -876,24 +865,16 @@
\exp_not:V \l_text_expand_exclude_tl
}
#1
-%</package>
}
-%<*package>
\cs_new:Npn \@@_expand_exclude:nN #1#2
{
\@@_expand_exclude:NN #2 #1
\q_@@_recursion_tail \q_@@_recursion_stop
}
-%</package>
\cs_new:Npn \@@_expand_exclude:NN #1#2
{
\@@_if_recursion_tail_stop_do:Nn #2
-%<*initex>
- { \@@_expand_cs:N #1 }
-%</initex>
-%<*package>
{ \@@_expand_letterlike:N #1 }
-%</package>
\cs_if_eq:NNTF #2 #1
{
\@@_use_i_delimit_by_q_recursion_stop:nw
@@ -910,7 +891,6 @@
% Another list of exceptions: these ones take no arguments so are
% easier to handle.
% \begin{macrocode}
-%<*package>
\cs_new:Npn \@@_expand_letterlike:N #1
{
\exp_after:wN \@@_expand_letterlike:NN \exp_after:wN
@@ -931,7 +911,6 @@
}
{ \@@_expand_letterlike:NN #1 }
}
-%</package>
% \end{macrocode}
% \LaTeXe{}'s \cs{protect} makes life interesting. Where possible, we
% simply remove it and replace with the \enquote{parent} command; of course,
@@ -1076,7 +1055,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index 4944e42682..14af0c466e 100644
--- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -165,7 +165,7 @@
% ^^A which does not add the <active char> in memory.
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \subsection{Variables and helper functions}
@@ -1098,7 +1098,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index c315612b43..5e088e4558 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -1256,7 +1256,7 @@
% \section{\pkg{l3tl} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -3460,7 +3460,7 @@
% \end{variable}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index cffbea2c97..11f4fc4bcd 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -1108,7 +1108,7 @@
% \section{\pkg{l3token} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -1448,10 +1448,8 @@
% auxiliaries reflects that.
% \begin{macrocode}
\group_begin:
-%<*package>
\char_set_catcode_active:N \^^L
\cs_set:Npn ^^L { }
-%</package>
\char_set_catcode_other:n { 0 }
\if_int_odd:w 0
\sys_if_engine_luatex:T { 1 }
@@ -1534,8 +1532,8 @@
% lists, one for each character code, using \tn{tex_lowercase:D} to
% convert |^^@| in each case. The \texttt{x}-type expansion ensures
% that \tn{tex_lowercase:D} receives the contents of the token list.
-% In package mode, |^^L| is awkward hence this is done in three parts.
-% Notice that at this stage |^^@| is active.
+% |^^L| is awkward hence this is done in three parts: up to |^^L|,
+% |^^L| itslef and above |^L|. Notice that at this stage |^^@| is active.
% \begin{macrocode}
\cs_set_protected:Npn \@@_tmp:n #1
{
@@ -1548,17 +1546,12 @@
{ \exp_not:o \l_@@_tmp_tl }
}
}
-%<*package>
\int_step_function:nnN { 0 } { 11 } \@@_tmp:n
\group_begin:
\tl_replace_once:Nnn \l_@@_tmp_tl { ^^@ } { \ERROR }
\@@_tmp:n { 12 }
\group_end:
\int_step_function:nnN { 13 } { 255 } \@@_tmp:n
-%</package>
-%<*initex>
- \int_step_function:nnN { 0 } { 255 } \@@_tmp:n
-%</initex>
% \end{macrocode}
% As \TeX{} is very unhappy if it finds an alignment character inside
% a primitive \tn{halign} even when skipping false branches, some
@@ -2876,7 +2869,7 @@
% \end{macro}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index 334e8b7086..3c55fdfc85 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-07-17}
+% \date{Released 2020-08-07}
%
% \maketitle
%
@@ -60,7 +60,7 @@
% \section{\pkg{l3unicode} implementation}
%
% \begin{macrocode}
-%<*initex|package>
+%<*package>
% \end{macrocode}
%
% \begin{macrocode}
@@ -280,7 +280,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</initex|package>
+%</package>
% \end{macrocode}
%
% \end{implementation}
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index 01a6f88ddf..18b0ab1e9b 100644
--- a/macros/latex/contrib/l3kernel/source3.pdf
+++ b/macros/latex/contrib/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex
index e9381760fc..4bc27dfc38 100644
--- a/macros/latex/contrib/l3kernel/source3.tex
+++ b/macros/latex/contrib/l3kernel/source3.tex
@@ -53,7 +53,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2020-07-17}
+\date{Released 2020-08-07}
\pagenumbering{roman}
\maketitle