From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/aeb_pro/README | 64 + macros/latex/contrib/aeb_pro/acromemory/README.md | 44 + .../contrib/aeb_pro/acromemory/acromemory.dtx | 918 + .../contrib/aeb_pro/acromemory/acromemory.ins | 59 + .../contrib/aeb_pro/acromemory/acromemory.sty | 690 + .../contrib/aeb_pro/acromemory/aeb_pro/aeb_pro.js | 106 + .../aeb_pro/acromemory/doc/acromemory_man.pdf | Bin 0 -> 70213 bytes .../aeb_pro/acromemory/doc/acromemory_man.tex | 510 + .../aeb_pro/acromemory/examples/acromemory1_1.pdf | Bin 0 -> 230931 bytes .../aeb_pro/acromemory/examples/acromemory1_1.tex | 77 + .../aeb_pro/acromemory/examples/acromemory1_2.tex | 77 + .../aeb_pro/acromemory/examples/acromemory2_1.pdf | Bin 0 -> 506379 bytes .../aeb_pro/acromemory/examples/acromemory2_1.tex | 86 + .../aeb_pro/acromemory/examples/acromemory2_2.tex | 84 + .../aeb_pro/acromemory/examples/dinos/myDinos.eps | 8145 +++++ .../aeb_pro/acromemory/examples/dinos/myDinos.pdf | Bin 0 -> 20185 bytes .../aeb_pro/acromemory/examples/dinos/myDinos.tex | 43 + .../acromemory/examples/dinos/myDinos_01.pdf | Bin 0 -> 14476 bytes .../acromemory/examples/dinos/myDinos_02.pdf | Bin 0 -> 14475 bytes .../acromemory/examples/dinos/myDinos_03.pdf | Bin 0 -> 14475 bytes .../acromemory/examples/dinos/myDinos_04.pdf | Bin 0 -> 14476 bytes .../acromemory/examples/dinos/myDinos_05.pdf | Bin 0 -> 14475 bytes .../acromemory/examples/dinos/myDinos_06.pdf | Bin 0 -> 14477 bytes .../acromemory/examples/dinos/myDinos_07.pdf | Bin 0 -> 14476 bytes .../acromemory/examples/dinos/myDinos_08.pdf | Bin 0 -> 14477 bytes .../acromemory/examples/dinos/myDinos_09.pdf | Bin 0 -> 14477 bytes .../acromemory/examples/dinos/myDinos_10.pdf | Bin 0 -> 14475 bytes .../aeb_pro/acromemory/examples/dpsweb/dpsweb.eps | 6467 ++++ .../aeb_pro/acromemory/examples/dpsweb/dpsweb.pdf | Bin 0 -> 227623 bytes .../acromemory/examples/dpsweb/dpsweb_01.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_02.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_03.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_04.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_05.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_06.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_07.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_08.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_09.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_10.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_11.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_12.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_13.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_14.pdf | Bin 0 -> 211443 bytes .../acromemory/examples/dpsweb/dpsweb_15.pdf | Bin 0 -> 211449 bytes .../acromemory/examples/dpsweb/dpsweb_16.pdf | Bin 0 -> 211445 bytes .../acromemory/examples/dpsweb/dpsweb_17.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_18.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_19.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_20.pdf | Bin 0 -> 211447 bytes .../acromemory/examples/dpsweb/dpsweb_package.pdf | Bin 0 -> 4121481 bytes macros/latex/contrib/aeb_pro/acrosort/README | 17 + macros/latex/contrib/aeb_pro/acrosort/acrosort.dtx | 378 + macros/latex/contrib/aeb_pro/acrosort/acrosort.ins | 59 + macros/latex/contrib/aeb_pro/acrosort/acrosort.sty | 273 + .../contrib/aeb_pro/acrosort/aeb_pro/aeb_pro.js | 106 + .../aeb_pro/acrosort/examples/acrosort_test.pdf | Bin 0 -> 120400 bytes .../aeb_pro/acrosort/examples/acrosort_test.tex | 44 + .../aeb_pro/acrosort/examples/choo/choo.eps | 32564 +++++++++++++++++++ .../aeb_pro/acrosort/examples/choo/choo.pdf | Bin 0 -> 103349 bytes .../acrosort/examples/choo/choo_package.pdf | Bin 0 -> 1947015 bytes macros/latex/contrib/aeb_pro/aeb_pro/README.md | 51 + macros/latex/contrib/aeb_pro/aeb_pro/aeb.js | 24 + macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx | 4758 +++ macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.ins | 67 + macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js | 130 + macros/latex/contrib/aeb_pro/aeb_pro/aebpro.cfg | 12 + .../contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdf | Bin 0 -> 464340 bytes .../contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex | 3800 +++ .../aeb_pro/aeb_pro/doc/install_jsfiles.pdf | Bin 0 -> 220856 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex1.pdf | Bin 0 -> 70199 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex1.tex | 430 + .../aeb_pro/aeb_pro/examples/aebpro_ex2.pdf | Bin 0 -> 50752 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex2.tex | 232 + .../aeb_pro/aeb_pro/examples/aebpro_ex3.pdf | Bin 0 -> 763806 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex3.tex | 361 + .../aeb_pro/aeb_pro/examples/aebpro_ex4.pdf | Bin 0 -> 175005 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex4.tex | 346 + .../aeb_pro/aeb_pro/examples/aebpro_ex5.pdf | Bin 0 -> 254257 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex5.tex | 469 + .../aeb_pro/aeb_pro/examples/aebpro_ex6.pdf | Bin 0 -> 256560 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex6.tex | 150 + .../aeb_pro/aeb_pro/examples/aebpro_ex7.pdf | Bin 0 -> 50592 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex7.tex | 161 + .../aeb_pro/aeb_pro/examples/aebpro_ex8.pdf | Bin 0 -> 713378 bytes .../aeb_pro/aeb_pro/examples/aebpro_ex8.tex | 187 + .../aeb_pro/aeb_pro/examples/aebpro_index_ex.tex | 44 + .../aeb_pro/aeb_pro/examples/children/explog.pdf | Bin 0 -> 49193 bytes .../aeb_pro/aeb_pro/examples/children/target1.pdf | Bin 0 -> 29562 bytes .../aeb_pro/aeb_pro/examples/children/target1.tex | 72 + .../aeb_pro/aeb_pro/examples/children/target2.pdf | Bin 0 -> 24149 bytes .../aeb_pro/aeb_pro/examples/children/target2.tex | 43 + .../aeb_pro/aeb_pro/examples/children/theeuro.pdf | Bin 0 -> 43410 bytes .../aeb_pro/aeb_pro/examples/myCoverPage.pdf | Bin 0 -> 9068 bytes .../aeb_pro/aeb_pro/examples/myCoverPage.tex | 16 + .../aeb_pro/aeb_pro/examples/test_install.pdf | Bin 0 -> 19205 bytes .../aeb_pro/aeb_pro/examples/test_install.tex | 27 + .../contrib/aeb_pro/aeb_pro/extras/AeB_Logo.eps | Bin 0 -> 289706 bytes .../contrib/aeb_pro/aeb_pro/extras/AeB_Logo.pdf | Bin 0 -> 34683 bytes .../aeb_pro/aeb_pro/extras/AeB_Logo_bw15.pdf | Bin 0 -> 25733 bytes .../aeb_pro/aeb_pro/extras/AeB_Logo_bw50.pdf | Bin 0 -> 30674 bytes .../aeb_pro/extras/Manual_BG_DesignV_AeB.pdf | Bin 0 -> 44428 bytes .../aeb_pro/aeb_pro/extras/Manual_BG_Print_AeB.pdf | Bin 0 -> 27099 bytes .../latex/contrib/aeb_pro/aeb_pro/extras/aest.xls | Bin 0 -> 677888 bytes .../latex/contrib/aeb_pro/aeb_pro/extras/ease.pdf | Bin 0 -> 109690 bytes .../contrib/aeb_pro/aeb_pro/extras/robot_man.pdf | Bin 0 -> 95261 bytes .../latex/contrib/aeb_pro/aeb_pro/extras/trek.wav | Bin 0 -> 89864 bytes macros/latex/contrib/aeb_pro/aeb_pro/fsprodef.js | 64 + .../aeb_pro/aeb_pro/icons/btn_anime_icons1.pdf | Bin 0 -> 15812 bytes .../latex/contrib/aeb_pro/aebenvelope/ReadMe.txt | 29 + .../contrib/aeb_pro/aebenvelope/aeb_envelope.dtx | 291 + .../contrib/aeb_pro/aebenvelope/aeb_envelope.ins | 60 + .../contrib/aeb_pro/aebenvelope/aeb_envelope.sty | 148 + .../aeb_pro/aebenvelope/custom/AeST_Logo.eps | Bin 0 -> 312594 bytes .../aeb_pro/aebenvelope/custom/aebMyEnv.eps | Bin 0 -> 447226 bytes .../aeb_pro/aebenvelope/custom/aebMyEnv.pdf | Bin 0 -> 63716 bytes .../aeb_pro/aebenvelope/custom/aebMyEnv.tex | 108 + .../aeb_pro/aebenvelope/custom/airmail_bg.eps | Bin 0 -> 265470 bytes .../aeb_pro/aebenvelope/custom/myEnv_demo.tex | 124 + .../contrib/aeb_pro/aebenvelope/doc/aebenv_man.pdf | Bin 0 -> 164408 bytes .../latex/contrib/aeb_pro/aebenvelope/envelope.cfg | 2 + .../aeb_pro/aebenvelope/envelopes/aebenvelope1.pdf | Bin 0 -> 91102 bytes .../aeb_pro/aebenvelope/envelopes/aebenvelope2.pdf | Bin 0 -> 318499 bytes .../aeb_pro/aebenvelope/envelopes/template1.pdf | Bin 0 -> 15746 bytes .../aeb_pro/aebenvelope/envelopes/template2.pdf | Bin 0 -> 29503 bytes .../contrib/aeb_pro/aebenvelope/envexecjs.def | 46 + .../contrib/aeb_pro/aebenvelope/examples/ape1.tex | 60 + .../contrib/aeb_pro/aebenvelope/examples/ape2.tex | 46 + .../contrib/aeb_pro/aebenvelope/examples/ape3.tex | 52 + .../contrib/aeb_pro/aebenvelope/examples/ape4.tex | 65 + .../aeb_pro/aebenvelope/examples/dearmom.pdf | Bin 0 -> 96164 bytes .../contrib/aeb_pro/aebslicing/AeB Slicing.sequ | 22 + .../latex/contrib/aeb_pro/aebslicing/aebslice.js | 345 + .../aeb_pro/aebslicing/aebslicing_sequ_doc.pdf | Bin 0 -> 67532 bytes macros/latex/contrib/aeb_pro/aebxmp/README.md | 53 + macros/latex/contrib/aeb_pro/aebxmp/aebxmp.dtx | 812 + macros/latex/contrib/aeb_pro/aebxmp/aebxmp.ins | 60 + .../contrib/aeb_pro/aebxmp/doc/aebxmp_man.pdf | Bin 0 -> 133445 bytes .../contrib/aeb_pro/aebxmp/doc/aebxmp_man.tex | 580 + .../aeb_pro/aebxmp/examples/aebxmp_test.pdf | Bin 0 -> 50399 bytes .../aeb_pro/aebxmp/examples/aebxmp_test.tex | 138 + .../latex/contrib/aeb_pro/robot_man/AeB_Logo.eps | Bin 0 -> 822287 bytes .../latex/contrib/aeb_pro/robot_man/robot_lis.eps | Bin 0 -> 309422 bytes .../latex/contrib/aeb_pro/robot_man/robot_man.pdf | Bin 0 -> 633142 bytes .../latex/contrib/aeb_pro/robot_man/robot_man.tex | 70 + 144 files changed, 65366 insertions(+) create mode 100644 macros/latex/contrib/aeb_pro/README create mode 100644 macros/latex/contrib/aeb_pro/acromemory/README.md create mode 100644 macros/latex/contrib/aeb_pro/acromemory/acromemory.dtx create mode 100644 macros/latex/contrib/aeb_pro/acromemory/acromemory.ins create mode 100644 macros/latex/contrib/aeb_pro/acromemory/acromemory.sty create mode 100644 macros/latex/contrib/aeb_pro/acromemory/aeb_pro/aeb_pro.js create mode 100644 macros/latex/contrib/aeb_pro/acromemory/doc/acromemory_man.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/doc/acromemory_man.tex create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/acromemory1_1.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/acromemory1_1.tex create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/acromemory1_2.tex create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/acromemory2_1.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/acromemory2_1.tex create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/acromemory2_2.tex create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos.eps create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos.tex create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_01.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_02.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_03.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_04.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_05.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_06.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_07.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_08.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_09.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dinos/myDinos_10.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb.eps create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_01.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_02.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_03.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_04.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_05.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_06.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_07.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_08.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_09.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_10.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_11.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_12.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_13.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_14.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_15.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_16.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_17.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_18.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_19.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_20.pdf create mode 100644 macros/latex/contrib/aeb_pro/acromemory/examples/dpsweb/dpsweb_package.pdf create mode 100644 macros/latex/contrib/aeb_pro/acrosort/README create mode 100644 macros/latex/contrib/aeb_pro/acrosort/acrosort.dtx create mode 100644 macros/latex/contrib/aeb_pro/acrosort/acrosort.ins create mode 100644 macros/latex/contrib/aeb_pro/acrosort/acrosort.sty create mode 100644 macros/latex/contrib/aeb_pro/acrosort/aeb_pro/aeb_pro.js create mode 100644 macros/latex/contrib/aeb_pro/acrosort/examples/acrosort_test.pdf create mode 100644 macros/latex/contrib/aeb_pro/acrosort/examples/acrosort_test.tex create mode 100644 macros/latex/contrib/aeb_pro/acrosort/examples/choo/choo.eps create mode 100644 macros/latex/contrib/aeb_pro/acrosort/examples/choo/choo.pdf create mode 100644 macros/latex/contrib/aeb_pro/acrosort/examples/choo/choo_package.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/README.md create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/aeb.js create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.dtx create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.ins create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/aeb_pro.js create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/aebpro.cfg create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/doc/aebpro_man.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/doc/install_jsfiles.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex1.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex1.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex2.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex2.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex3.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex3.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex4.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex4.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex5.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex5.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex6.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex6.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex7.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex7.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex8.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_ex8.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/aebpro_index_ex.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/children/explog.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/children/target1.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/children/target1.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/children/target2.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/children/target2.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/children/theeuro.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/myCoverPage.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/myCoverPage.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/test_install.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/examples/test_install.tex create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/AeB_Logo.eps create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/AeB_Logo.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/AeB_Logo_bw15.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/AeB_Logo_bw50.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/Manual_BG_DesignV_AeB.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/Manual_BG_Print_AeB.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/aest.xls create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/ease.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/robot_man.pdf create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/extras/trek.wav create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/fsprodef.js create mode 100644 macros/latex/contrib/aeb_pro/aeb_pro/icons/btn_anime_icons1.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/ReadMe.txt create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/aeb_envelope.dtx create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/aeb_envelope.ins create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/aeb_envelope.sty create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/custom/AeST_Logo.eps create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/custom/aebMyEnv.eps create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/custom/aebMyEnv.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/custom/aebMyEnv.tex create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/custom/airmail_bg.eps create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/custom/myEnv_demo.tex create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/doc/aebenv_man.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/envelope.cfg create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/envelopes/aebenvelope1.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/envelopes/aebenvelope2.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/envelopes/template1.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/envelopes/template2.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/envexecjs.def create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/examples/ape1.tex create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/examples/ape2.tex create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/examples/ape3.tex create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/examples/ape4.tex create mode 100644 macros/latex/contrib/aeb_pro/aebenvelope/examples/dearmom.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebslicing/AeB Slicing.sequ create mode 100644 macros/latex/contrib/aeb_pro/aebslicing/aebslice.js create mode 100644 macros/latex/contrib/aeb_pro/aebslicing/aebslicing_sequ_doc.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/README.md create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/aebxmp.dtx create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/aebxmp.ins create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/doc/aebxmp_man.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/doc/aebxmp_man.tex create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/examples/aebxmp_test.pdf create mode 100644 macros/latex/contrib/aeb_pro/aebxmp/examples/aebxmp_test.tex create mode 100644 macros/latex/contrib/aeb_pro/robot_man/AeB_Logo.eps create mode 100644 macros/latex/contrib/aeb_pro/robot_man/robot_lis.eps create mode 100644 macros/latex/contrib/aeb_pro/robot_man/robot_man.pdf create mode 100644 macros/latex/contrib/aeb_pro/robot_man/robot_man.tex (limited to 'macros/latex/contrib/aeb_pro') diff --git a/macros/latex/contrib/aeb_pro/README b/macros/latex/contrib/aeb_pro/README new file mode 100644 index 0000000000..4207f0e670 --- /dev/null +++ b/macros/latex/contrib/aeb_pro/README @@ -0,0 +1,64 @@ +Members of the AeB Pro Family of Software + +These packages require Acrobat 7.0 or later, the aebXMP package +requires Acrobat 8 Pro. All packages, except the AeB Slicing batch +sequence require the AeB (AcroTeX eDucation Bundle). Pick it up at +the AeB headquarters (http://www.math.uakron.edu/~dpstory/webeq.html). + +The following are the first offerings of the AeB Pro Family + +(1) The aebXMP Package: A LaTeX package that fills in the advance + metadata. Requires Acrobat 8 Professional, and uses E4X, the xml + parser that is built into version 8 JavaScript engine. + + The documentation, aebxmp_doc.pdf, has the package and the test file + attached to it. (aebxmp.sty and the test file is also extracted to the folder as well) + +(2) The AcroSort Package: A novelty package for importing an image that + has been sliced into rows and columns and randomly rearranged. The + JavaScript does a bubble sort on the picture. + + Documentation and demo file: acrosort_test.pdf + + Package file and sample images files + + To slice your photos into rows and columns, you will need my AeB + Slicing batch sequence. + +(3) AeB Slicing batch sequence: This is a batch sequence for Acrobat + Pro that takes the image open in Acrobat and slices it into a + specified number of rows and columns, and saves the slices to a + designated folder. + + Documentation: aebslicing_sequ_doc.pdf + + Batch sequence, AeB Slicing.sequ, and dialog box, aebslice.js for batch + the batch sequence. + +(4) The AcroMemory Package: A LaTeX package that implements two + variations of a memory game: (1) a single game board consisting of a + number of tiles, each tile has a matching twin, the object is to + find all the matching twins; (2) two game boards, both identical + except one has been randomly rearranged, the object is the find the + matching pieces in each of the two game boards. The AeB Slicing is + used to slice the image into a specified number of rows and columns. + + Two demo files illustrate the two games: (1) one game board + acromemory1_1.pdf and (2) two game boards acromemory2_1.pdf + + Documentation: acromemory_doc.pdf + + Package files, demo files and image files. + + To slice your photos into rows and columns, you will need my AeB + Slicing batch sequence. + +(5) Robot Man: This one is just for fun. Source file is attached to the + robot_man.pdf demo document. The files are also extraced from the robot_man.pdf + for easy access. + +Regards, + +dpstory@uakron.edu + +Now, I simply must get back to my retirement. diff --git a/macros/latex/contrib/aeb_pro/acromemory/README.md b/macros/latex/contrib/aeb_pro/acromemory/README.md new file mode 100644 index 0000000000..ebdc500817 --- /dev/null +++ b/macros/latex/contrib/aeb_pro/acromemory/README.md @@ -0,0 +1,44 @@ +aebacromemory --- D. P. Story +Dated: 2017-02-23 + +AcroMemory requires Adobe Distiller as the PDF creator, as well as the +use of Acrobat. + +What's New (2017/02/23) Correct the need for Acrobat as the viewer +application. The game now correctly function when the user view a AcroMemory +game in Adobe Reader. + +AcroMemory is a memory game in which you find the matching tiles. There +are two versions, available as options of this package, acromemory1 and +acromemory2 (the default). + +acromemory1: Here you have a single game board, a rectangular +region divided by rows and columns. The total number of tiles should be +even, each tile should have a matching twin. The game begins with all +the tiles hidden. The user clicks a tile, then another. If the tiles do +not match, they become hidden again (you did remember the position of +those tiles, didn't you?); otherwise, they remain visible and are now +read-only. The game is complete when the user, with a lot of time on +his/her hands, matches all tiles. There is a running tabulation kept on +the number of tries. There is also a button which resets the game and +randomizes the tiles. + +acromemory2: For this game you have two identical rectangular images +subdivided into tiles (or slices), which are arrayed in rows and columns. +The tiles for one of the two images is randomly re-arranged. The object of +the game is to find all the matching tiles by choosing a tile from one +image and a tile from the other image. As in the first case, if the +selected tiles do not match, they are hidden after a short interval of +time (you did remember the position of those tiles, didn't you?); +otherwise, they remain visible and are now read-only. The game is over +when all tiles are matched; when this occurs, end-of-game special effects +occur that will dazzle the senses. There is an option to view a small +image to help you locate the matching tiles on the non-randomized; useful +if the image is complex. There is no reset button at this time, to play +again, the user must therefore close and open the document. + +Now, I simply must get back to my retirement. + +D. P. Story +dpstory@acrotex.net +2011/12/31 diff --git a/macros/latex/contrib/aeb_pro/acromemory/acromemory.dtx b/macros/latex/contrib/aeb_pro/acromemory/acromemory.dtx new file mode 100644 index 0000000000..8770f3c3e7 --- /dev/null +++ b/macros/latex/contrib/aeb_pro/acromemory/acromemory.dtx @@ -0,0 +1,918 @@ +% \iffalse +%<*copyright> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% acromemory.sty package, %% +%% Copyright (C) 2006--2017 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.2 of %% +%% the License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{acromemory} +% [2017/02/23 v1.1 AcroMemory (dps)] +%<*driver> +\documentclass{ltxdoc} +\usepackage[colorlinks,hyperindex]{hyperref} +\pdfstringdefDisableCommands{\let\\\textbackslash}% +\EnableCrossrefs \CodelineIndex +\OnlyDescription % comment out for implementation details +\begin{document} + \GetFileInfo{acromemory.sty} + \title{The \texttt{AcroMemory} Package\texorpdfstring{\\}{: } + A member of the AeB Pro family} + \author{D. P. Story\\ + Email: \texttt{storyd@owc.edu}} + \date{processed \today} + \maketitle + \tableofcontents + \let\Email\texttt + \DocInput{acromemory.dtx} + \PrintIndex +\end{document} +% +% \fi +% \section{What is the AeB Pro Family?} +% Through the years, I have tried to make my AeB software +% ({Acro\negthinspace\TeX} eDucation Bundle) compatible with +% \textsf{pdftex} and \textsf{dvipdfm}; however, during that time, +% I've developed a number of techniques that require the use of +% Acrobat and distiller. Therefore, I have set off in a new direction and +% will be publishing a new line of {\LaTeX} packages, one that require the use +% of Acrobat. +% +% The current package, \textsf{AcroMemory}, requires the use of Acrobat Pro~7.0 or later. +% \section{Introduction} +% +% At the instigation of my erstwhile friend, J\"{u}ergen, I present to you \textsf{AcroMemory}, and +% for the life of me, I can't remember why. +% +% Oh, yes, \textsf{AcroMemory} is a memory game in which you find the matching tiles. There are two versions +% ---available as options of this package---for your enjoyment, +% \texttt{acromemory1} and \texttt{acromemory2} (the default). +% \begin{itemize} +% \item \texttt{acromemory1}: Here you have a single game board, a rectangular region divided +% by rows and columns. The total number of tiles should +% be even, each tile should have a matching twin. The +% game begins with all the tiles hidden. the user clicks a tile, +% then another. If the tiles do not match, they become become hidden again +% (you did remember the position of those tiles, didn't you?); otherwise, +% they remain visible and are now read-only. The game is complete when the user, with +% a lot of time on his/her hands, matches all tiles. There is a running tabulation kept +% on the number of tries. There is also a button which resets the game and randomizes the +% tiles. +% \item \texttt{acromemory2}: For this game you have two identical rectangular images subdivided in%to tiles +% (or slices) arrayed in rows and columns. The tiles for +% one of the two images has been randomly re-arranged. The object of the game is to find all the +% matching tiles by choosing a tiles from one image, and tile from the other image. As in the +% first case, if the selected tiles do not match, they are hidden after an short interval of time +% (you did remember the position of those tiles, didn't you?); otherwise, they remain visible and +% are now read-only. The game is over when all tiles are matched, when this occurs, end-of-game +% special effects occur that will dazzle the senses. There is an option to view a small image to +% help you locate the matching tiles on the non-randomized; useful if the image is complex. There +% is no reset button at this time, to play again, the user must close and open the document. +% \end{itemize} +% The demo files are \texttt{acromemory1.tex} and \texttt{acromemory2.tex}. These files show how to +% lay out the various elements of this package. +% +% \section{Creating the Image Tiles} +% +% There are a couple of ways you can package your image tiles: (1) place all tiles (all of identical size) +% into a single PDF and use the \texttt{iconfile} option to tell AcroMemory you are using this method; (2) +% each image file is a separate PDF. In the latter case, there is a naming convention that must be followed; +% the files must be named \texttt{\_01.pdf}, \texttt{\_02.pdf}, \dots, +% \texttt{\_10.pdf}, \texttt{\_11.pdf}, \dots. You'll note the consistent two digit +% numbering system is used. + +% For \texttt{acromemory2}, slicing of the image is at the very heart +% of this game. You can slice an image in to rectangular tiles using +% any of several applications: \textsf{Adobe Illustrator}, +% \textsf{Photoshop} and \textsf{ImageReady}, for example. But these are +% expensive applications and you have already bought \textsf{Acrobat Pro}. For this purpose, +% AeB Pro provides the \textsf{AcroSlicing} batch sequence. +% +% \begin{macrocode} +%<*package> +\RequirePackage{xkeyval} +% \end{macrocode} +% \begin{macro}{acromemory1} +% One playing board, where you try to match identical icons. +% \begin{macrocode} +\DeclareOptionX{acromemory1}{\acromemoryitrue} +% \end{macrocode} +% \end{macro} +% \begin{macro}{acromemory2} +% Two playing boards, one board randomized the other not. Try to find the matching icons, +% one from each of the two boards. +% \begin{macrocode} +\DeclareOptionX{acromemory2}{\acromemoryifalse} +% \end{macrocode} +% \end{macro} +% \begin{macro}{acromemory2} +% Two playing boards, one board randomized the other not. Try to find the matching icons, +% one from each of the two boards. +% \begin{macrocode} +\DeclareOptionX{iconfile}{\def\iconsInOneFile{true}} +\def\iconsInOneFile{false} +% \end{macrocode} +% \end{macro} +% \begin{macro}{includehelp} +% Only valid when \texttt{acromemory2} is taken, this option allows you to provide a +% figure showing the completed puzzle. +% \begin{macrocode} +\DeclareOptionX{includehelp}{\includehelptrue} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newif\ifincludehelp \includehelpfalse +\newif\ifacromemoryi \acromemoryifalse +\ProcessOptionsX +\RequirePackage{graphicx} +\RequirePackage{comment} +\ifacromemoryi + \def\RanIdentifier{\@gobble} + \includecomment{acromemory1} + \excludecomment{acromemory2} + \excludecomment{needhelp} +\else + \def\RanIdentifier{R\@gobble} + \includecomment{acromemory2} + \excludecomment{acromemory1} + \ifincludehelp + \includecomment{needhelp} + \else + \excludecomment{needhelp} + \fi +\fi +% \end{macrocode} +% \section{Main Macro Code} +% When setting up your AcroMemory document, you need to provide this package with +% certain information, as listed below. +% \begin{macro}{\theTotalTiles} +% \begin{macro}{\theNumRows} +% \begin{macro}{\theNumCols} +% \begin{macro}{\theImportPath} +% \begin{macro}{\theIconExt} +% \begin{macro}{\theTeXImageWidth} +% \begin{macro}{\provideDimensions} +%\begin{itemize} +% \item \cs{theTotalTiles}: The total number of tiles in the game board. For example, +% \verb!\theTotalTiles{20}!. This parameter is required. +% \item \cs{theNumRows}: The number of rows in the game board. For example, +% \verb!\theNumRows{5}!. This parameter is required. +% \item \cs{theNumCols}: The number of columns in the game board. For example, +% \verb!\theNumCols{4}!. This parameter is required. +% \item \cs{theImportPath}: The import path to the basename of the image. The path +% should use the path specification as defined in the PDF Ref, and the file name should +% have no extension. For example, \verb!\theImportPath{myFig/myimages}!. Required. +% There is an optional argument that is typically used when the iconfile is in effect +% with the acromemory2 option, and an image of the game board is different from the +% path given by the optional argument; for example, +%\begin{verbatim} +% \theImportPath[dpsweb/dpsweb]{dpsweb/dpsweb_package} +%\end{verbatim} +% The required argument points the packaged icons, the optional argument points to +% a file showing the entire image +% \item \cs{theIconExt}: The extension of the image file(s), Required if different +% from \texttt{pdf}. +% \item \cs{theTeXImageWidth}: The scaled width of the rectangular game board. The +% game board will be rescaled so that its width is equal to the value specified +% by the argument of this command, e.g., \verb!\theTeXImageWidth{2in}!. +% \item\cs{provideDimensions}: If the dimension of the game board is known, the width +% and height can be entered with this command using the two parameters. For example, +% \verb!\provideDimensions{2in}{2.5in}! (width, height). +%\end{itemize} +% \begin{macrocode} +\def\theTotalTiles#1{\def\nTotalTiles{#1}} +\def\theNumRows#1{\def\nRows{#1}} +\def\theNumCols#1{\def\nCols{#1}} +\newcommand{\theImportPath}[2][]{% + \ifacromemoryi + \def\imageImportPath{#2} + \def\importpath{#2} + \else + \def\argi{#1}\ifx\argi\@empty + \def\imageImportPath{#2} + \def\importpath{#2} + \else + \def\imageImportPath{#1} + \def\importpath{#2} + \fi + \fi +} +\def\theIconExt#1{\def\iconsExt{#1}} +\def\iconsExt{pdf} +\def\theTeXImageWidth#1{\def\texImageWidth{#1}% + {\dimen0 = \texImageWidth \xdef\imageWidth{\strip@pt\dimen0 }}% +} +\newcommand{\provideDimensions}[3][]{% + \def\argi{#1}\ifx\argi\@empty + {\dimen0 = #2 \xdef\trueImageWidth{\strip@pt\dimen0 }% + \dimen0 = #3 \xdef\trueImageHeight{\strip@pt\dimen0 }}% + \else + \def\trueImageWidth{#1}\def\trueImageHeight{#2}% + \fi + \def\bProvideDimen{true}% +} +\def\bProvideDimen{false}% +\def\trueImageWidth{0}\def\trueImageHeight{0}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\bDebug} +% A debugging command. When executed in the preamble, more is written to the Acrobat console +% as the document is opened the first time, also, the icons are initially visible so you can +% see the layout, and quickly play the game. This was used in development extensively to help +% develop the JavaScript. +% \begin{macrocode} +\def\bDebug{\def\memDebug{true}} +\def\memDebug{false} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\helpImage} +% \begin{macro}{\rolloverHelpButton} +% \begin{macro}{\setHelpImageWidth} +% \begin{macro}{\theHelpCaption} +% When \texttt{acromemory2} options and the \texttt{includehelp} +% options are taken, these commands are available. The command +% \cs{helpImage} will contain an icon of the puzzle, and it width +% is set by the command \cs{setHelpImageWidth}. The image is normally +% hidden until the user rolls over the \cs{rolloverHelpButton}. The +% icons appears with an caption under it, the content of the caption +% can be entered using \cs{theHelpCaption}. +% \begin{macrocode} +\newcommand{\helpImage}[1][]{{% + \ifincludehelp{\setbox0 = \hbox{% + \includegraphics[draft,width=\helpImageWidth]% + {\imageImportPath}}%[\Ff\FfReadOnly] + \dimen0=\ht0 \advance\dimen0by14bp\ht0=\dimen0 + \pushButton[\BC{}\BG{}\S{S}#1]{memoryhelp}{\the\wd0}{\the\ht0}}\fi +}} +\newcommand{\rolloverHelpButton}[3][]{% + \ifincludehelp + \pushButton[\CA{Help}\BC{0 0 1}\BG{0.89 0.9 0.9} + \AA{\AAMouseEnter{\JS{% + var f = this.getField("memoryhelp");\r + oIcon = f.buttonGetIcon(1);\r + f.buttonPosition = position.iconTextV;\r + f.buttonSetIcon(oIcon,0);\r + f.buttonSetCaption({cCaption: "\helpCaption"});\r + f.textColor=color.blue;\r + }}% + \AAMouseExit{\JS{% + var f = this.getField("memoryhelp");\r + f.buttonPosition = position.iconOnly;\r + f.buttonSetIcon(nullIcon,0); + }}}#1]{checkhelp}{#2}{#3}% + \fi +} +\newcommand{\setHelpImageWidth}[1]{\def\helpImageWidth{#1}} +\def\helpImageWidth{1in} +\def\theHelpCaption#1{\def\helpCaption{#1}} +\theHelpCaption{A little help} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\messageBox} +% A message text field, as the user works the puzzle, the progress is reported +% to this field. +% \begin{macrocode} +\newcommand{\messageBox}[3][]{% + \textField[#1\Ff\FfMultiline]{MsgBox}{#2}{#3}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\playItAgain} +% For the \texttt{acromemory1} option, this button can be placed to reset +% the game board, the icons are rearranged hand hidden again. +% \begin{macrocode} +\newcommand{\playItAgain}[3][]{\ifacromemoryi{\small + \pushButton[\CA{Play again}#1\A{\JS{playagain();}}]% + {playAgain}{#2}{#3}}% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ulCornerHere} +% \begin{macro}{\LulCornerHere} +% \begin{macro}{\RulCornerHere} +% \begin{macro}{\reserveSpaceByDimension} +% \begin{macro}{\reserveSpaceByFile} +% This group of buttons appear together. \cs{ulCornerHere} is used to +% set the upper left corner of the game board in the case of the +% \texttt{acromemory1} option; while \cs{LulCornerHere} and \cs{RulCornerHere} +% do the same thing for the \texttt{acromemory2} option. One of the two commands +% \cs{reserveSpaceByDimension} or \cs{reserveSpaceByFile} immediately follow +% the `corner' commands. +% \begin{macrocode} +\def\ulCornerHere{\makebox[0pt][l]% + {\pushButton[\autoCenter{n}]{ulcorner}{0pt}{0pt}% + \pushButton[\autoCenter{n}\BC{}\BG{}\FB{true}\I{null}\TP{1}]{nullIconBtn}{0pt}{0pt}% + }} +\def\LulCornerHere{\makebox[0pt][l]% + {\pushButton[\autoCenter{n}]{Lulcorner}{0pt}{0pt}% + \pushButton[\autoCenter{n}\BC{}\BG{}\FB{true}\I{null}\TP{1}]{nullIconBtn}{0pt}{0pt}% + }} +\def\RulCornerHere{\makebox[0pt][l]% + {\pushButton[\autoCenter{n}]{Rulcorner}{0pt}{0pt}}} +% \end{macrocode} +% The two arguments are $\texttt{\#1} = \mbox{width}$ and $\texttt{\#2} = \mbox{height}$. +% \begin{macrocode} +\def\reserveSpaceByDimension#1#2{% + \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% + \@tempdima=#1\advance\@tempdima by-\fboxrule + \@tempdimb=#2\advance\@tempdimb by-\fboxrule + \fbox{\parbox[t][\@tempdimb][t]{\@tempdima}{\kern0pt\hfill\vfill}}% + \else\parbox[t][#2][t]{#1}{\kern0pt\hfill\vfill}\fi}% +} +% \end{macrocode} +% The optional argument can be used to insert a file that has the same aspect ratio as +% the puzzle, the default is the one specified by the optional argument of +% \cs{theImportPath}, which, if not specified, is the same as the required argument +% of \cs{theImportPath} +% \begin{macrocode} +\newcommand{\reserveSpaceByFile}[1][\imageImportPath]% + {{\setbox0=\hbox{\includegraphics[draft,width=\texImageWidth]{#1}}% + \reserveSpaceByDimension{\wd0}{\ht0}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \section{Document JavaScript for \textsf{AcroMemory}} +% Most of the work of this package is done with document JavaScript, and here +% it is. +%\par\medskip\noindent +%\StopEventually{JavaScript listing suppressed, +% comment out \cs{OnlyDescription} at the beginning of this file to see +% the JavaScript.} +% \begin{macrocode} +\begin{insDLJS*}[_MemLoaded]{memjs} +\begin{newsegment}{AcroMemory 1: Global Data and Initialization} +// Global Data: +_MemLoaded=true; +var randomDPS = new Array(\nTotalTiles+1); +var imageNames = new Array(); +imageNames.push("null"); + +var dpsl = randomDPS.length; +var timeout = 10; +var shutdown, rAE; +var ok2Continue = true; +var nRows = \nRows; +var nCols = \nCols; +var nCorrect = 0; +var nAttempts = 0; + +for (i=1; i<=\nTotalTiles; i++) randomDPS[i]=i; +% \end{macrocode} +% We get the push button with a null icon (nullIconBtn) We get the null icon object +% from it. This technique eliminates the previous need for the Acrobat application when +% viewing the game. +% \changes{v1.1}{2017/02/23}{use f.buttonGetIcon to get null icon object} +% \begin{macrocode} +var f=this.getField("nullIconBtn"); +var nullIcon=f.buttonGetIcon(); +var debug = \memDebug; +\end{newsegment} + +\begin{acromemory1} +\begin{newsegment}{AcroMemory 2: Initialize Pic Names} +var nttl = \nTotalTiles/2; +for ( var i = 1; i <= nttl; i++) +{ + imageNames.push("pic"+i +".0"); + imageNames.push("pic"+i +".1"); +} +var currentChoice = ""; +var currentTile1 = 0; +var currentTile2 = 0; +var currentIconName = ""; +\end{newsegment} +\end{acromemory1} +\begin{acromemory2} +\begin{newsegment}{AcroMemory 2: Initialize Pic Names} +var nttl = \nTotalTiles; +for ( var i = 1; i <= nttl; i++) +{ + imageNames.push("pic."+i); +} +var LcurrentChoice = 0; +var LcurrentTile = 0; +var RcurrentChoice = 0; +var RcurrentTile = 0; +\end{newsegment} +\end{acromemory2} +\begin{newsegment}{AcroMemory 3: Bubble Sort} +// Clear DPS: + +function clearDPS() +{ + for ( var i=1; i<=\nTotalTiles; i++ ) + { + var f = this.getField("Mem\RanIdentifier button."+i); + f.buttonSetIcon(nullIcon); + } +} + +// Mixup DPS: +function mixupDPS() +{ + var i, rand; + for (i=1; i<= \nTotalTiles; i++) + { + var rand = Math.random(); + rand *= dpsl*dpsl; + rand = Math.ceil(rand); + rand = rand \% dpsl; + if (rand == 0 ) rand = 1; + temp = randomDPS[i]; + randomDPS[i]=randomDPS[rand]; + randomDPS[rand]=temp; + } +} + +// Show DPS: +function showDPS() +{ + for ( var i=1; i<=\nTotalTiles; i++ ) + { + var oIcon = this.getIcon(imageNames[randomDPS[i]]); + var f = this.getField("Mem\RanIdentifier button."+i); + f.buttonSetIcon(oIcon); + } +} + +// Sortout DPS: begin bubble sort +function sortoutDPS() +{ + outerLoop(randomDPS.length-1); +} +function outerLoop(i) +{ + if ( ok2Continue && (i >= 0) ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+",1);", timeout); +} +function innerLoop(i,j) +{ + if ( j <= i ) + { + if (randomDPS[j-1] > randomDPS[j]) + { + var temp = randomDPS[j-1]; + randomDPS[j-1] = randomDPS[j]; + randomDPS[j] = temp; + var oIcon = this.getIcon(imageNames[randomDPS[j-1]]); + var f = this.getField("Mem\RanIdentifier button."+(j-1)); + f.buttonSetIcon(oIcon); + var oIcon = this.getIcon(imageNames[randomDPS[j]]); + var f = this.getField("Mem\RanIdentifier button."+j); + f.buttonSetIcon(oIcon); + } + j++ + if ( ok2Continue ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+","+j+");", timeout); + } + else + { + i--; + outerLoop(i); + } +} +function randomizePuzzle() { + mixupDPS(); + for ( var i=1; i<=\nTotalTiles; i++) { + var g = this.getField("Mem\RanIdentifier button."+i); + var oIcon = this.getIcon(imageNames[randomDPS[i]]); + g.buttonSetIcon(oIcon,1); + if (debug) g.buttonSetIcon(oIcon,0); + } +} +\end{newsegment} +\begin{acromemory1} +\begin{newsegment}{AcroMemory 4: Tile Processing} +function selectTile() // right side randomly arranged +{ + var f = event.target; + var oIcon = f.buttonGetIcon(1); + f.buttonSetIcon(oIcon,0); + var fname = f.name; + var re1 = /Membutton\.(\d+)/; + var index = re1.exec(fname); + if (debug) console.println("index = " + index[1]); + var thisiconName = imageNames[randomDPS[index[1]]]; + if (debug) console.println("thisiconName = " + thisiconName); + var re = /pic(\d+)\.(\d)/; + var image = re.exec(thisiconName) + if (debug) console.println("selected: " + image[1] + "." + image[2]); + if ( currentChoice == "" ) { + currentChoice = fname; + currentTile1=image[1]; + currentTile2=image[2]; + currentIconName = thisiconName; + return; + } + if ( (image[1] == currentTile1) && (image[2] != currentTile2) ) + { // right choice + nCorrect++; + nAttempts++ + f.readonly = true; + var g = this.getField(currentChoice); + g.readonly = true; + reportProgress(nCorrect,nAttempts); + resetCounters(); + + } else { // wrong choice + nAttempts++ + reportProgress(nCorrect,nAttempts); + rAE = app.setTimeOut("resetAfterError(\""+currentChoice+"\",\""+fname+"\")", 1000); + resetCounters(); + } + +} +function resetCounters () +{ + currentChoice = ""; + currentTile1 = 0; + currentTile2 = 0; + currentIconName = ""; +} +function resetAfterError(l,r) +{ + try { app.clearTimeOut(rAE); } catch(e) {}; + var f = this.getField(l); + var g = this.getField(r); + if (!debug) g.buttonSetIcon(nullIcon,0); +// g.strokeColor=color.black; + if (!debug) f.buttonSetIcon(nullIcon,0); +// f.strokeColor=color.black; +} +function executePostGameEffects() {return;} +function playagain() +{ + for ( var i=1; i<=\nTotalTiles; i++) { + var g = this.getField("Membutton."+i); + g.buttonSetIcon(nullIcon,0); + } + g = this.getField("Membutton"); + g.readonly=false; + resetCounters(); + nCorrect = 0; + nAttempts = 0; + reportProgress(nCorrect,nAttempts); + randomizePuzzle(); +} +\end{newsegment} +\end{acromemory1} +\begin{acromemory2} +\begin{newsegment}{AcroMemory 4: Tile Processing} +function selectRandomTile(nCnt,n) // right side randomly arranged +{ + if ( RcurrentChoice != 0 ) return; + RcurrentChoice = nCnt; + RcurrentTile = n; + nAttempts++; + var f = event.target; + f.strokeColor = ["RGB", 0, .6, 0]; + var oIcon = f.buttonGetIcon(1); + f.buttonSetIcon(oIcon,0); + if ( LcurrentChoice != 0 ) { + if (debug) console.println("LcurrentChoice = " + LcurrentChoice + ", RcurrentChoice = " + RcurrentChoice); + if ( LcurrentChoice == nCnt ) {// right answer + // need to make right side hidden and readonly + // need to make this button readonly + var g = this.getField("MemLbutton."+LcurrentChoice); + g.strokeColor=color.transparent; + g.readonly = true; + f.strokeColor=color.transparent; + f.readonly = true; + if (++nCorrect == \nTotalTiles ) // game complete + executePostGameEffects(); + reportProgress(nCorrect,nAttempts); + resetCounters(); + } else { // wrong answer + // need to set current choices back to zero + reportProgress(nCorrect,nAttempts); + rAE = app.setTimeOut("resetAfterError("+LcurrentTile+","+RcurrentTile+")", 1000); + resetCounters(); + } + } +} +function selectNonRandomTile(nCnt,n) // left side, arranged in natural order +{ + if ( LcurrentChoice != 0 ) return; + LcurrentChoice = nCnt; + LcurrentTile = n; + var f = event.target; + f.strokeColor = ["RGB", 0, .6, 0]; + var oIcon = f.buttonGetIcon(1); + f.buttonSetIcon(oIcon,0); + if ( RcurrentChoice != 0 ) { + if (debug) console.println("LcurrentChoice = " + LcurrentChoice + ", RcurrentChoice = " + RcurrentChoice); + if ( RcurrentChoice == nCnt ) {// right answer + // need to make right side hidden and readonly + // need to make this button readonly + var g = this.getField("MemRbutton."+RcurrentTile); + g.strokeColor=color.transparent; + g.readonly = true; + f.readonly = true; + f.strokeColor=color.transparent; + if (++nCorrect == \nTotalTiles ) // game complete + executePostGameEffects(); + reportProgress(nCorrect,nAttempts); + resetCounters(); + } else { // wrong answer + // need to set current choices back to zero + reportProgress(nCorrect,nAttempts); + rAE = app.setTimeOut("resetAfterError("+LcurrentTile+","+RcurrentTile+")", 1000); + resetCounters(); + } + } +} +function resetCounters () +{ + LcurrentChoice = 0; + RcurrentChoice = 0; + LcurrentTile = 0; + RcurrentTile = 0; +} +function resetAfterError(l,r) +{ + try { app.clearTimeOut(rAE); } catch(e) {}; + var f = this.getField("MemLbutton."+l); + var g = this.getField("MemRbutton."+r); + if (!debug) g.buttonSetIcon(nullIcon,0); + g.strokeColor=color.black; + if (!debug) f.buttonSetIcon(nullIcon,0); + f.strokeColor=color.black; +} +function executePostGameEffects() { + sortoutDPS(); + var fL = this.getField("MemLbutton.1"); + var fR = this.getField("MemRbutton.1"); + var LulCorner = fL.rect; + var RulCorner = fR.rect; + var mWidth = LulCorner[2]-LulCorner[0]; + var mHeight = LulCorner[1]-LulCorner[3]; + var nCnt = 0; + for ( var i=0; i +% \end{macrocode} +% \Finale +\endinput diff --git a/macros/latex/contrib/aeb_pro/acromemory/acromemory.ins b/macros/latex/contrib/aeb_pro/acromemory/acromemory.ins new file mode 100644 index 0000000000..9fb50c9a82 --- /dev/null +++ b/macros/latex/contrib/aeb_pro/acromemory/acromemory.ins @@ -0,0 +1,59 @@ +%% +%% 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{2006/11/06} +\def\batchfile{acromemory.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{acromemory.sty}{\from{acromemory.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/aeb_pro/acromemory/acromemory.sty b/macros/latex/contrib/aeb_pro/acromemory/acromemory.sty new file mode 100644 index 0000000000..52c5e2b1cb --- /dev/null +++ b/macros/latex/contrib/aeb_pro/acromemory/acromemory.sty @@ -0,0 +1,690 @@ +%% +%% This is file `acromemory.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% acromemory.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% acromemory.sty package, %% +%% Copyright (C) 2006--2017 D. P. Story %% +%% dpstory@acrotex.net %% +%% storyd@owc.edu %% +%% %% +%% 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. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{acromemory} + [2017/02/23 v1.1 AcroMemory (dps)] + +\RequirePackage{xkeyval} +\DeclareOptionX{acromemory1}{\acromemoryitrue} +\DeclareOptionX{acromemory2}{\acromemoryifalse} +\DeclareOptionX{iconfile}{\def\iconsInOneFile{true}} +\def\iconsInOneFile{false} +\DeclareOptionX{includehelp}{\includehelptrue} +\newif\ifincludehelp \includehelpfalse +\newif\ifacromemoryi \acromemoryifalse +\ProcessOptionsX +\RequirePackage{graphicx} +\RequirePackage{comment} +\ifacromemoryi + \def\RanIdentifier{\@gobble} + \includecomment{acromemory1} + \excludecomment{acromemory2} + \excludecomment{needhelp} +\else + \def\RanIdentifier{R\@gobble} + \includecomment{acromemory2} + \excludecomment{acromemory1} + \ifincludehelp + \includecomment{needhelp} + \else + \excludecomment{needhelp} + \fi +\fi +\def\theTotalTiles#1{\def\nTotalTiles{#1}} +\def\theNumRows#1{\def\nRows{#1}} +\def\theNumCols#1{\def\nCols{#1}} +\newcommand{\theImportPath}[2][]{% + \ifacromemoryi + \def\imageImportPath{#2} + \def\importpath{#2} + \else + \def\argi{#1}\ifx\argi\@empty + \def\imageImportPath{#2} + \def\importpath{#2} + \else + \def\imageImportPath{#1} + \def\importpath{#2} + \fi + \fi +} +\def\theIconExt#1{\def\iconsExt{#1}} +\def\iconsExt{pdf} +\def\theTeXImageWidth#1{\def\texImageWidth{#1}% + {\dimen0 = \texImageWidth \xdef\imageWidth{\strip@pt\dimen0 }}% +} +\newcommand{\provideDimensions}[3][]{% + \def\argi{#1}\ifx\argi\@empty + {\dimen0 = #2 \xdef\trueImageWidth{\strip@pt\dimen0 }% + \dimen0 = #3 \xdef\trueImageHeight{\strip@pt\dimen0 }}% + \else + \def\trueImageWidth{#1}\def\trueImageHeight{#2}% + \fi + \def\bProvideDimen{true}% +} +\def\bProvideDimen{false}% +\def\trueImageWidth{0}\def\trueImageHeight{0}% +\def\bDebug{\def\memDebug{true}} +\def\memDebug{false} +\newcommand{\helpImage}[1][]{{% + \ifincludehelp{\setbox0 = \hbox{% + \includegraphics[draft,width=\helpImageWidth]% + {\imageImportPath}}%[\Ff\FfReadOnly] + \dimen0=\ht0 \advance\dimen0by14bp\ht0=\dimen0 + \pushButton[\BC{}\BG{}\S{S}#1]{memoryhelp}{\the\wd0}{\the\ht0}}\fi +}} +\newcommand{\rolloverHelpButton}[3][]{% + \ifincludehelp + \pushButton[\CA{Help}\BC{0 0 1}\BG{0.89 0.9 0.9} + \AA{\AAMouseEnter{\JS{% + var f = this.getField("memoryhelp");\r + oIcon = f.buttonGetIcon(1);\r + f.buttonPosition = position.iconTextV;\r + f.buttonSetIcon(oIcon,0);\r + f.buttonSetCaption({cCaption: "\helpCaption"});\r + f.textColor=color.blue;\r + }}% + \AAMouseExit{\JS{% + var f = this.getField("memoryhelp");\r + f.buttonPosition = position.iconOnly;\r + f.buttonSetIcon(nullIcon,0); + }}}#1]{checkhelp}{#2}{#3}% + \fi +} +\newcommand{\setHelpImageWidth}[1]{\def\helpImageWidth{#1}} +\def\helpImageWidth{1in} +\def\theHelpCaption#1{\def\helpCaption{#1}} +\theHelpCaption{A little help} +\newcommand{\messageBox}[3][]{% + \textField[#1\Ff\FfMultiline]{MsgBox}{#2}{#3}} +\newcommand{\playItAgain}[3][]{\ifacromemoryi{\small + \pushButton[\CA{Play again}#1\A{\JS{playagain();}}]% + {playAgain}{#2}{#3}}% + \fi +} +\def\ulCornerHere{\makebox[0pt][l]% + {\pushButton[\autoCenter{n}]{ulcorner}{0pt}{0pt}% + \pushButton[\autoCenter{n}\BC{}\BG{}\FB{true}\I{null}\TP{1}]{nullIconBtn}{0pt}{0pt}% + }} +\def\LulCornerHere{\makebox[0pt][l]% + {\pushButton[\autoCenter{n}]{Lulcorner}{0pt}{0pt}% + \pushButton[\autoCenter{n}\BC{}\BG{}\FB{true}\I{null}\TP{1}]{nullIconBtn}{0pt}{0pt}% + }} +\def\RulCornerHere{\makebox[0pt][l]% + {\pushButton[\autoCenter{n}]{Rulcorner}{0pt}{0pt}}} +\def\reserveSpaceByDimension#1#2{% + \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% + \@tempdima=#1\advance\@tempdima by-\fboxrule + \@tempdimb=#2\advance\@tempdimb by-\fboxrule + \fbox{\parbox[t][\@tempdimb][t]{\@tempdima}{\kern0pt\hfill\vfill}}% + \else\parbox[t][#2][t]{#1}{\kern0pt\hfill\vfill}\fi}% +} +\newcommand{\reserveSpaceByFile}[1][\imageImportPath]% + {{\setbox0=\hbox{\includegraphics[draft,width=\texImageWidth]{#1}}% + \reserveSpaceByDimension{\wd0}{\ht0}}} +\begin{insDLJS*}[_MemLoaded]{memjs} +\begin{newsegment}{AcroMemory 1: Global Data and Initialization} +// Global Data: +_MemLoaded=true; +var randomDPS = new Array(\nTotalTiles+1); +var imageNames = new Array(); +imageNames.push("null"); + +var dpsl = randomDPS.length; +var timeout = 10; +var shutdown, rAE; +var ok2Continue = true; +var nRows = \nRows; +var nCols = \nCols; +var nCorrect = 0; +var nAttempts = 0; + +for (i=1; i<=\nTotalTiles; i++) randomDPS[i]=i; +var f=this.getField("nullIconBtn"); +var nullIcon=f.buttonGetIcon(); +var debug = \memDebug; +\end{newsegment} + +\begin{acromemory1} +\begin{newsegment}{AcroMemory 2: Initialize Pic Names} +var nttl = \nTotalTiles/2; +for ( var i = 1; i <= nttl; i++) +{ + imageNames.push("pic"+i +".0"); + imageNames.push("pic"+i +".1"); +} +var currentChoice = ""; +var currentTile1 = 0; +var currentTile2 = 0; +var currentIconName = ""; +\end{newsegment} +\end{acromemory1} +\begin{acromemory2} +\begin{newsegment}{AcroMemory 2: Initialize Pic Names} +var nttl = \nTotalTiles; +for ( var i = 1; i <= nttl; i++) +{ + imageNames.push("pic."+i); +} +var LcurrentChoice = 0; +var LcurrentTile = 0; +var RcurrentChoice = 0; +var RcurrentTile = 0; +\end{newsegment} +\end{acromemory2} +\begin{newsegment}{AcroMemory 3: Bubble Sort} +// Clear DPS: + +function clearDPS() +{ + for ( var i=1; i<=\nTotalTiles; i++ ) + { + var f = this.getField("Mem\RanIdentifier button."+i); + f.buttonSetIcon(nullIcon); + } +} + +// Mixup DPS: +function mixupDPS() +{ + var i, rand; + for (i=1; i<= \nTotalTiles; i++) + { + var rand = Math.random(); + rand *= dpsl*dpsl; + rand = Math.ceil(rand); + rand = rand \% dpsl; + if (rand == 0 ) rand = 1; + temp = randomDPS[i]; + randomDPS[i]=randomDPS[rand]; + randomDPS[rand]=temp; + } +} + +// Show DPS: +function showDPS() +{ + for ( var i=1; i<=\nTotalTiles; i++ ) + { + var oIcon = this.getIcon(imageNames[randomDPS[i]]); + var f = this.getField("Mem\RanIdentifier button."+i); + f.buttonSetIcon(oIcon); + } +} + +// Sortout DPS: begin bubble sort +function sortoutDPS() +{ + outerLoop(randomDPS.length-1); +} +function outerLoop(i) +{ + if ( ok2Continue && (i >= 0) ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+",1);", timeout); +} +function innerLoop(i,j) +{ + if ( j <= i ) + { + if (randomDPS[j-1] > randomDPS[j]) + { + var temp = randomDPS[j-1]; + randomDPS[j-1] = randomDPS[j]; + randomDPS[j] = temp; + var oIcon = this.getIcon(imageNames[randomDPS[j-1]]); + var f = this.getField("Mem\RanIdentifier button."+(j-1)); + f.buttonSetIcon(oIcon); + var oIcon = this.getIcon(imageNames[randomDPS[j]]); + var f = this.getField("Mem\RanIdentifier button."+j); + f.buttonSetIcon(oIcon); + } + j++ + if ( ok2Continue ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+","+j+");", timeout); + } + else + { + i--; + outerLoop(i); + } +} +function randomizePuzzle() { + mixupDPS(); + for ( var i=1; i<=\nTotalTiles; i++) { + var g = this.getField("Mem\RanIdentifier button."+i); + var oIcon = this.getIcon(imageNames[randomDPS[i]]); + g.buttonSetIcon(oIcon,1); + if (debug) g.buttonSetIcon(oIcon,0); + } +} +\end{newsegment} +\begin{acromemory1} +\begin{newsegment}{AcroMemory 4: Tile Processing} +function selectTile() // right side randomly arranged +{ + var f = event.target; + var oIcon = f.buttonGetIcon(1); + f.buttonSetIcon(oIcon,0); + var fname = f.name; + var re1 = /Membutton\.(\d+)/; + var index = re1.exec(fname); + if (debug) console.println("index = " + index[1]); + var thisiconName = imageNames[randomDPS[index[1]]]; + if (debug) console.println("thisiconName = " + thisiconName); + var re = /pic(\d+)\.(\d)/; + var image = re.exec(thisiconName) + if (debug) console.println("selected: " + image[1] + "." + image[2]); + if ( currentChoice == "" ) { + currentChoice = fname; + currentTile1=image[1]; + currentTile2=image[2]; + currentIconName = thisiconName; + return; + } + if ( (image[1] == currentTile1) && (image[2] != currentTile2) ) + { // right choice + nCorrect++; + nAttempts++ + f.readonly = true; + var g = this.getField(currentChoice); + g.readonly = true; + reportProgress(nCorrect,nAttempts); + resetCounters(); + + } else { // wrong choice + nAttempts++ + reportProgress(nCorrect,nAttempts); + rAE = app.setTimeOut("resetAfterError(\""+currentChoice+"\",\""+fname+"\")", 1000); + resetCounters(); + } + +} +function resetCounters () +{ + currentChoice = ""; + currentTile1 = 0; + currentTile2 = 0; + currentIconName = ""; +} +function resetAfterError(l,r) +{ + try { app.clearTimeOut(rAE); } catch(e) {}; + var f = this.getField(l); + var g = this.getField(r); + if (!debug) g.buttonSetIcon(nullIcon,0); +// g.strokeColor=color.black; + if (!debug) f.buttonSetIcon(nullIcon,0); +// f.strokeColor=color.black; +} +function executePostGameEffects() {return;} +function playagain() +{ + for ( var i=1; i<=\nTotalTiles; i++) { + var g = this.getField("Membutton."+i); + g.buttonSetIcon(nullIcon,0); + } + g = this.getField("Membutton"); + g.readonly=false; + resetCounters(); + nCorrect = 0; + nAttempts = 0; + reportProgress(nCorrect,nAttempts); + randomizePuzzle(); +} +\end{newsegment} +\end{acromemory1} +\begin{acromemory2} +\begin{newsegment}{AcroMemory 4: Tile Processing} +function selectRandomTile(nCnt,n) // right side randomly arranged +{ + if ( RcurrentChoice != 0 ) return; + RcurrentChoice = nCnt; + RcurrentTile = n; + nAttempts++; + var f = event.target; + f.strokeColor = ["RGB", 0, .6, 0]; + var oIcon = f.buttonGetIcon(1); + f.buttonSetIcon(oIcon,0); + if ( LcurrentChoice != 0 ) { + if (debug) console.println("LcurrentChoice = " + LcurrentChoice + ", RcurrentChoice = " + RcurrentChoice); + if ( LcurrentChoice == nCnt ) {// right answer + // need to make right side hidden and readonly + // need to make this button readonly + var g = this.getField("MemLbutton."+LcurrentChoice); + g.strokeColor=color.transparent; + g.readonly = true; + f.strokeColor=color.transparent; + f.readonly = true; + if (++nCorrect == \nTotalTiles ) // game complete + executePostGameEffects(); + reportProgress(nCorrect,nAttempts); + resetCounters(); + } else { // wrong answer + // need to set current choices back to zero + reportProgress(nCorrect,nAttempts); + rAE = app.setTimeOut("resetAfterError("+LcurrentTile+","+RcurrentTile+")", 1000); + resetCounters(); + } + } +} +function selectNonRandomTile(nCnt,n) // left side, arranged in natural order +{ + if ( LcurrentChoice != 0 ) return; + LcurrentChoice = nCnt; + LcurrentTile = n; + var f = event.target; + f.strokeColor = ["RGB", 0, .6, 0]; + var oIcon = f.buttonGetIcon(1); + f.buttonSetIcon(oIcon,0); + if ( RcurrentChoice != 0 ) { + if (debug) console.println("LcurrentChoice = " + LcurrentChoice + ", RcurrentChoice = " + RcurrentChoice); + if ( RcurrentChoice == nCnt ) {// right answer + // need to make right side hidden and readonly + // need to make this button readonly + var g = this.getField("MemRbutton."+RcurrentTile); + g.strokeColor=color.transparent; + g.readonly = true; + f.readonly = true; + f.strokeColor=color.transparent; + if (++nCorrect == \nTotalTiles ) // game complete + executePostGameEffects(); + reportProgress(nCorrect,nAttempts); + resetCounters(); + } else { // wrong answer + // need to set current choices back to zero + reportProgress(nCorrect,nAttempts); + rAE = app.setTimeOut("resetAfterError("+LcurrentTile+","+RcurrentTile+")", 1000); + resetCounters(); + } + } +} +function resetCounters () +{ + LcurrentChoice = 0; + RcurrentChoice = 0; + LcurrentTile = 0; + RcurrentTile = 0; +} +function resetAfterError(l,r) +{ + try { app.clearTimeOut(rAE); } catch(e) {}; + var f = this.getField("MemLbutton."+l); + var g = this.getField("MemRbutton."+r); + if (!debug) g.buttonSetIcon(nullIcon,0); + g.strokeColor=color.black; + if (!debug) f.buttonSetIcon(nullIcon,0); + f.strokeColor=color.black; +} +function executePostGameEffects() { + sortoutDPS(); + var fL = this.getField("MemLbutton.1"); + var fR = this.getField("MemRbutton.1"); + var LulCorner = fL.rect; + var RulCorner = fR.rect; + var mWidth = LulCorner[2]-LulCorner[0]; + var mHeight = LulCorner[1]-LulCorner[3]; + var nCnt = 0; + for ( var i=0; i