summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/easybook/README.md2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx9
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin632737 -> 631621 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex48
-rw-r--r--macros/latex/contrib/parnotes/CHANGELOG-from-2016.md17
-rw-r--r--macros/latex/contrib/parnotes/README.md21
-rw-r--r--macros/latex/contrib/parnotes/changes.txt14
-rw-r--r--macros/latex/contrib/parnotes/parnotes.pdfbin57719 -> 57764 bytes
-rw-r--r--macros/latex/contrib/parnotes/parnotes.sty27
-rw-r--r--macros/latex/contrib/parnotes/parnotes.tex8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.oggbin0 -> 33263 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.oggbin0 -> 9865 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.oggbin0 -> 12011 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.oggbin0 -> 14175 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.oggbin0 -> 33072 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.oggbin0 -> 58385 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.oggbin0 -> 36458 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.oggbin0 -> 15489 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.oggbin0 -> 92122 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.oggbin0 -> 45754 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.oggbin0 -> 16077 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.oggbin0 -> 37626 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.oggbin0 -> 51685 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.oggbin0 -> 13645 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.oggbin0 -> 15843 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.oggbin0 -> 33768 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.oggbin0 -> 18610 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.oggbin0 -> 41577 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.oggbin0 -> 8290 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.oggbin0 -> 19424 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/author.oggbin0 -> 16874 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/date.oggbin0 -> 13533 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example-spel/title.oggbin0 -> 15077 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example.pdfbin0 -> 84895 bytes
-rw-r--r--macros/latex/contrib/spelatex/Example/example.tex113
-rw-r--r--macros/latex/contrib/spelatex/LICENSE9
-rw-r--r--macros/latex/contrib/spelatex/README61
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-1.oggbin0 -> 94717 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-2.oggbin0 -> 98617 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-3.oggbin0 -> 109358 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-4.oggbin0 -> 155391 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-5.oggbin0 -> 152827 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-6.oggbin0 -> 91691 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-7.oggbin0 -> 104121 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-8.oggbin0 -> 88804 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u11
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.oggbin0 -> 11987 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u55
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.oggbin0 -> 14010 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.oggbin0 -> 29418 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.oggbin0 -> 13034 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.oggbin0 -> 12487 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.oggbin0 -> 40506 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.oggbin0 -> 49604 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.oggbin0 -> 73214 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.oggbin0 -> 17542 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u35
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.oggbin0 -> 19955 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.oggbin0 -> 35521 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.oggbin0 -> 22446 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.oggbin0 -> 20714 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.oggbin0 -> 28813 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.oggbin0 -> 22720 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.oggbin0 -> 54977 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.oggbin0 -> 61764 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.oggbin0 -> 115275 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.oggbin0 -> 99445 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.oggbin0 -> 89423 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.oggbin0 -> 101905 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.oggbin0 -> 354951 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.oggbin0 -> 86271 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u12
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.oggbin0 -> 19907 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.oggbin0 -> 129255 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.oggbin0 -> 152754 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.oggbin0 -> 22940 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.oggbin0 -> 210721 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.oggbin0 -> 29567 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.oggbin0 -> 26498 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.oggbin0 -> 18524 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.oggbin0 -> 140974 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.oggbin0 -> 47150 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u9
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.oggbin0 -> 22754 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.oggbin0 -> 146171 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.oggbin0 -> 66807 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.oggbin0 -> 19849 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.oggbin0 -> 72186 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.oggbin0 -> 152125 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.oggbin0 -> 117019 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.oggbin0 -> 23853 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.oggbin0 -> 78697 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.oggbin0 -> 80392 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.oggbin0 -> 36303 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.oggbin0 -> 30646 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.oggbin0 -> 19292 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.oggbin0 -> 32581 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.oggbin0 -> 46607 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.oggbin0 -> 242937 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.oggbin0 -> 64604 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.oggbin0 -> 37835 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.oggbin0 -> 17518 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u22
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.oggbin0 -> 14092 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.oggbin0 -> 33415 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.oggbin0 -> 40339 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.oggbin0 -> 21474 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.oggbin0 -> 25383 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.oggbin0 -> 85124 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.oggbin0 -> 41739 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.oggbin0 -> 31449 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.oggbin0 -> 61968 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.oggbin0 -> 33266 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.oggbin0 -> 19502 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.oggbin0 -> 111888 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.oggbin0 -> 80908 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.oggbin0 -> 72593 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.oggbin0 -> 102376 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.oggbin0 -> 21918 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.oggbin0 -> 112247 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.oggbin0 -> 18675 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.oggbin0 -> 170550 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.oggbin0 -> 18399 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u52
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.oggbin0 -> 13016 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.oggbin0 -> 44777 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.oggbin0 -> 20882 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.oggbin0 -> 15532 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.oggbin0 -> 13888 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.oggbin0 -> 15770 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.oggbin0 -> 28759 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.oggbin0 -> 29062 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.oggbin0 -> 84905 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u45
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.oggbin0 -> 22299 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.oggbin0 -> 76941 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.oggbin0 -> 59984 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.oggbin0 -> 56443 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.oggbin0 -> 97379 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.oggbin0 -> 24481 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.oggbin0 -> 30979 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.oggbin0 -> 35538 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.oggbin0 -> 25843 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.oggbin0 -> 81166 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.oggbin0 -> 60545 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.oggbin0 -> 38105 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.oggbin0 -> 92093 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.oggbin0 -> 40528 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.oggbin0 -> 27220 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.oggbin0 -> 99435 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.oggbin0 -> 53793 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.oggbin0 -> 56626 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.oggbin0 -> 80933 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.oggbin0 -> 27772 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.oggbin0 -> 100656 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.oggbin0 -> 47203 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.oggbin0 -> 71665 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.oggbin0 -> 41316 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.oggbin0 -> 30051 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.oggbin0 -> 71887 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.oggbin0 -> 31328 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.oggbin0 -> 44852 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.oggbin0 -> 50015 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.oggbin0 -> 9840 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.oggbin0 -> 45999 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.oggbin0 -> 31747 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.oggbin0 -> 31487 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.oggbin0 -> 49170 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.oggbin0 -> 22597 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.oggbin0 -> 40219 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.oggbin0 -> 53220 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.oggbin0 -> 39721 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.oggbin0 -> 74882 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.oggbin0 -> 84137 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u8
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.oggbin0 -> 18821 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.oggbin0 -> 43898 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.oggbin0 -> 13841 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.oggbin0 -> 86870 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u47
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.oggbin0 -> 12260 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.oggbin0 -> 75917 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.oggbin0 -> 16938 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.oggbin0 -> 17935 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.oggbin0 -> 37825 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.oggbin0 -> 25563 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.oggbin0 -> 63840 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.oggbin0 -> 28873 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.oggbin0 -> 20614 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.oggbin0 -> 58385 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.oggbin0 -> 22293 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.oggbin0 -> 12478 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.oggbin0 -> 47027 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.oggbin0 -> 10589 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.oggbin0 -> 31558 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.oggbin0 -> 10566 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.oggbin0 -> 23508 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u9
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.oggbin0 -> 24466 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.oggbin0 -> 45532 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.oggbin0 -> 25778 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.oggbin0 -> 32724 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.oggbin0 -> 64241 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.oggbin0 -> 16275 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.oggbin0 -> 105112 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.oggbin0 -> 18681 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u9
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.oggbin0 -> 21352 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.oggbin0 -> 24864 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.oggbin0 -> 84898 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.oggbin0 -> 15991 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.oggbin0 -> 20878 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.oggbin0 -> 63161 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u4
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.oggbin0 -> 18744 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.oggbin0 -> 92122 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.oggbin0 -> 106855 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.oggbin0 -> 61395 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.oggbin0 -> 45754 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.oggbin0 -> 37065 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.oggbin0 -> 44904 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.oggbin0 -> 55034 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.oggbin0 -> 94428 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.oggbin0 -> 27027 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.oggbin0 -> 24810 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.oggbin0 -> 22771 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u14
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.oggbin0 -> 20436 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.oggbin0 -> 55366 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u31
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.oggbin0 -> 15114 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.oggbin0 -> 20646 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u7
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.oggbin0 -> 26219 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.oggbin0 -> 27910 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.oggbin0 -> 26519 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.oggbin0 -> 28484 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.oggbin0 -> 28780 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-1.oggbin0 -> 8290 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-2.oggbin0 -> 9093 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-3.oggbin0 -> 7609 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u6
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.oggbin0 -> 24132 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.oggbin0 -> 19694 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.oggbin0 -> 16575 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.oggbin0 -> 17551 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.oggbin0 -> 19804 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.oggbin0 -> 22080 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.oggbin0 -> 21182 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u10
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.oggbin0 -> 25282 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.oggbin0 -> 21077 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.oggbin0 -> 20091 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.oggbin0 -> 20317 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.oggbin0 -> 21078 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.oggbin0 -> 21711 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.oggbin0 -> 18143 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.oggbin0 -> 26737 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u5
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.oggbin0 -> 26916 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.oggbin0 -> 30677 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u3
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.oggbin0 -> 32373 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/author.oggbin0 -> 29582 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/date.oggbin0 -> 22610 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/footnote-1.oggbin0 -> 53151 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/footnote-2.oggbin0 -> 27434 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex-spel/title.oggbin0 -> 19874 bytes
-rw-r--r--macros/latex/contrib/spelatex/spelatex.dtx2238
-rw-r--r--macros/latex/contrib/spelatex/spelatex.ins58
-rw-r--r--macros/latex/contrib/spelatex/spelatex.pdfbin0 -> 331707 bytes
-rw-r--r--macros/latex/contrib/tblr-extras/tblr-extras-dev.sty242
-rw-r--r--macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.pdfbin29492 -> 31484 bytes
-rw-r--r--macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.tex29
-rw-r--r--macros/latex/contrib/tblr-extras/tblr-extras.sty167
-rw-r--r--macros/latex/contrib/tblr-extras/test-tblr-extras.pdfbin0 -> 18353 bytes
-rw-r--r--macros/latex/contrib/tblr-extras/test-tblr-extras.tex42
334 files changed, 3709 insertions, 84 deletions
diff --git a/macros/latex/contrib/easybook/README.md b/macros/latex/contrib/easybook/README.md
index 289866dc0f..58a8455373 100644
--- a/macros/latex/contrib/easybook/README.md
+++ b/macros/latex/contrib/easybook/README.md
@@ -1,5 +1,5 @@
# `easybook` document class
-Easily typesetting Chinese theses or books (v2024ca)
+Easily typesetting Chinese theses or books (v2024cb)
## Abstract
`easybook` is a pure academic template created based on the `ctexbook` book document class. It also has the functions of `book` and `article` document class. Combined with the general framework design of the theses of many universities in China, providing multiple commands and interfaces allows users to easily customize the theses templates. Its basic macro package `easybase` can also be used with `ctex` and standard document classes.
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 54a42b1c63..b62638a9e9 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -12,9 +12,9 @@
% LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
+%<class|package>\NeedsTeXFormat{LaTeX2e}[2021/11/15]
%<*class>
-\NeedsTeXFormat{LaTeX2e}[2021/11/15]
-\ProvidesExplClass{easybook}{2024/06/11}{2024ca}
+\ProvidesExplClass{easybook}{2024/06/12}{2024cb}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -299,9 +299,8 @@
}
%</class>
%<*package>
-\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/06/11}{2024ca}
+\ProvidesExplPackage{easybase}{2024/06/12}{2024cb}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -2605,7 +2604,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/06/11}{2024ca}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/06/12}{2024cb}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index ebd75ecaea..ed99820e44 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index ff9143a912..4ec4e77548 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -4,8 +4,8 @@
\usepackage[fontset = fandol]{ctex}
\usepackage
{
- enumitem,indentfirst,tabularray,fancyvrb,
- geometry,hologo,pifont,changelog,calc
+ enumitem,indentfirst,tabularray,
+ fancyvrb,geometry,hologo,changelog,calc
}
\definecolorscheme{blue}
{
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024ca,
- date = 2024/06/11,
+ version = v2024cb,
+ date = 2024/06/12,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -35,7 +35,7 @@
},
arg-format = \normalfont\small\itshape\xeCJKVerbAddon,
abstract-format = \small,
- module-sep = \,\raisebox{-1pt}{\ding{224}}\,,
+ module-sep = \,$\Rightarrow$\,,
title-format = \huge\sffamily
}
\KOMAoptions{numbers = noenddot}
@@ -145,7 +145,7 @@
\code{\choices{#2}}
}
% Use a separate module margin marker to prevent overlap
-\newcommand{\smodule}[1]{\cnltx@module@text*{\normalsize #1}}
+\newcommand{\smodule}[1]{{\normalsize\cnltx@module@text*{#1}}}
\renewcommand{\cnltx@package@abstract@width}{0.85\linewidth}
\renewcommand{\cnltx@write@lastname}{}
\newcounter{ctexexam}
@@ -204,35 +204,21 @@
\end{itemize}
\subsection{前言}
-对于排版外文文档已有诸如 \cls*{KOMA-Script} 和 \cls*{memoir} 等应用广泛的文档类,但这些文档类并不是为中文用户设计的,难免有些水土不符,且用户手册繁杂,对于普通用户来说学习成本高,难以快速上手。中文文档的解决方案 \pkg*{ctex} 宏集解决了中文输出和章节标题格式的设置问题,但在编写文档过程中往往需要更多基本的定制功能,例如目录、图表标题、页眉页脚、脚注和页面边距等,这往往需要额外加载不同功能的宏包。\easybook{} 文档类在 \cls*{ctexbook} 基础上载入了一些使用频率较高且基本稳定的宏包,对它们的功能进行整合并优化联动使用,模块化的改装提供统一的接口兼容 \pkg*{ctex} 文档类,可以满足学术类文档例如中国学位论文模板的基本需求。\easybook{} 提供了与 \CTeX 相同现代化风格的键值设置,支持不同类型的选项与层次化的选项设置。
+对于排版外文文档已有诸如 \cls*{KOMA-Script} 和 \cls*{memoir} 等应用广泛的文档类,但这些文档类并不是为中文用户设计的,难免有些水土不符,且用户手册繁杂,对于普通用户来说学习成本高,难以快速上手。中文文档的解决方案 \CTeX 宏集解决了中文输出和章节标题格式的设置问题,但在编写文档过程中往往需要更多基本的定制功能,例如目录、图表标题、页眉页脚、脚注和页面边距等,这往往需要额外加载不同功能的宏包。\easybook{} 文档类在 \cls*{ctexbook} 基础上载入了一些使用频率较高且基本稳定的宏包,对它们的功能进行整合并优化联动使用,模块化的改装提供统一的接口兼容 \CTeX 文档类,可以满足学术类文档例如中国学位论文模板的基本需求。\easybook{} 提供了与 \CTeX 相同现代化风格的键值设置,支持不同类型的选项与层次化的选项设置。
\subsection{基本用法}
\label{subsec:basic usage}
-以下一份简单的 \TeX 文档演示了 \easybook{} 的最基本用法,在导言区进行宏包载入与文档设置,一些详细的使用样例会不定期上传在 \href{https://www.latexstudio.net/}{\hologo{LaTeX} 工作室} 的网站。
+以下一份简单的 \TeX 文档演示了 \easybook{} 的最基本用法,在导言区进行宏包载入与文档设置,一些详细的使用样例会不定期上传在 \href{https://www.latexstudio.net/}{\hologo{LaTeX} 工作室} 的网站。或者直接使用 \pkg*{easybase} 宏包,目前适用于 \cls*{ctexbook}、\cls*{ctexrep}、\cls*{ctexart} 以及标准文档类,包含了\ref{sec:interface options} 所示各个模块接口命令的功能。当在\textbf{标准文档类}后载入时还可以使用 \pkg*{ctex} 宏包的选项,将会传递给 \pkg*{ctex} 宏包。文档类和宏包支持的全局选项见\ref{sec:document class options}。
\begin{frameverb}
- \documentclass[文档类选项]{easybook}
+ \documentclass[全局选项]{easybook}
+ % \documentclass[全局选项]{ctexbook}
+ % \usepackage[全局选项]{easybase}
\ctexset{键值列表}
\usepackage{宏包列表}
\begin{document}
- \chapter{欢迎}
- \section{Welcome to easybook}
- Hello, \LaTeX
- \end{document}
-\end{frameverb}
-
-或者直接使用 \pkg*{easybase} 宏包,目前适用于 \cls*{ctexbook}、\cls*{ctexrep}、\cls*{ctexart} 以及标准文档类,包含了\ref{sec:interface options} 所示各个模块接口命令的功能。它的宏包选项共享文档类选项的一部分,支持的选项见\ref{sec:document class options}。当在\textbf{标准文档类}后载入时还可以使用 \pkg*{ctex} 宏包的选项,将会传递给 \pkg*{ctex} 宏包。
-\begin{frameverb}
- \documentclass[文档类选项]{ctexbook}
-
- \usepackage[宏包选项]{easybase}
- \ctexset{键值列表}
-
- \usepackage{宏包列表}
-
- \begin{document}
- \chapter{欢迎}
+ \chapter{hello :)}
\section{Welcome to easybook}
Hello, \LaTeX
\end{document}
@@ -248,7 +234,7 @@
xelatex -shell-escape easybook
\end{frameverb}
当然也可以使用 \code{latexmk} 及一些软件自带的编译工具,这里就不做介绍。 \\
-\ding{72} 需要注意正确\textbf{编译索引}要增加 \code{-shell-escape} 命令行选项。
+$\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-shell-escape} 命令行选项。
\subsection{依赖宏包}
\ref{table:package list} 为 \pkg*{easybase} 直接调用的关键宏包清单,通常情况下它们是常用且稳定的。\colorbox{PaleTurquoise}{蓝色}背景的宏包表示修改了或依赖它们的内部命令。\colorbox{GreenYellow}{绿色}背景的宏包表示并未调用它们,但做了一些预配置,可在导言区手动载入以实现相关的功能。
@@ -271,9 +257,9 @@
tcolorbox & titletoc & tabularray & ulem &
\end{longtblr}
-\section{文档类选项}
+\section{全局选项}
\label{sec:document class options}
-文档类选项应当在使用 \easybook{} 文档类或 \pkg*{easybase} 宏包(部分支持)时指定,可见\ref{subsec:basic usage} 的例子。选项前带有\hface 符号表示只可用于文档类,否则文档类与宏包都适用。除了下面列举的选项以外,还支持标准和 \CTeX 文档类的选项。
+全局选项应当在使用 \easybook{} 文档类或 \pkg*{easybase} 宏包(部分支持)时指定,可见\ref{subsec:basic usage} 的例子。选项前带有\hface 符号表示只可用于文档类,否则文档类与宏包都适用。文档类选项除了下面额外增加的以外,还支持标准和 \CTeX 文档类的选项。
\subsection{基本选项}
\begin{cnltxlist}
@@ -313,7 +299,7 @@
[
caption = 英文字体预设方案,
label = table:english font,
- remark{\ding{72}} = \code{times*} 方案为 \textsf{windows} 系统的预置字体。,
+ remark{$\blacktriangleright$} = \code{times*} 方案为 \textsf{windows} 系统的预置字体。,
postsep = \bigskipamount-\itemsep
]{
hline{2} = {0.5pt,DarkBlue},
@@ -471,7 +457,7 @@
\subsection[间距]{间距\smodule{space}}
\label{subsec:space}
-行距因子用于设置各种行距倍数,\meta{数值} 是不带有长度单位的浮点数。各类行距既可以在导言区全局设置,也可以在正文中设置对后面生效。
+间距模块 \module*{space} 用于调整段落中的间距。带有 \option*{spread} 的选项可以设置行距倍数,\meta{数值} 是不带有长度单位的浮点数。各类行距既可以在导言区全局设置,也可以在正文中设置对后面生效。
\begin{cnltxlist}
\keyval{linespread}{数值}\Default{1.354}
正文行距因子。中文主题下行距因子初始值为 \code{1.354}(相当于 \textsf{Word} 的1.25倍行距),如果设置了文类或 \pkg*{ctex} 宏包的全局行距选项 \option{linespread} 则初始值设为它的值。
diff --git a/macros/latex/contrib/parnotes/CHANGELOG-from-2016.md b/macros/latex/contrib/parnotes/CHANGELOG-from-2016.md
new file mode 100644
index 0000000000..001252dd0c
--- /dev/null
+++ b/macros/latex/contrib/parnotes/CHANGELOG-from-2016.md
@@ -0,0 +1,17 @@
+**Revision 3: Released on Aug 15 2016**
+ * Bug fix: Use `\protected@edef` to expand the parnote counter (fixes incompatibility with `BiocStyle`)
+
+**Revision 2: Released on Jul 26 2016**
+ * **Breaking change:** You can no longer redefine `\parnotemarkfmt`. Use `\theparnotemark` and `\parnotecusmarkfmt` instead. See the manual for details.
+ * Bug fix: `\parnotefmt` no longer changes the font to `\rmfamily` by default.
+ * `\parnote` now has an optional argument: a manually-specified parnote mark.
+ * `\parnote` now behaves more like `\footnote`:
+ * It respects `\spacefactor`
+ * It no longer inserts `\unskip`
+ * The parnote mark counter may be reset using standard LaTeX macros, e.g., `\setcounter{parnotemark}{5}`
+ * `\label` now works within parnote text; `\ref` returns the parnote label, `\pageref` returns the page where the note *text* is set, and `\parnoteref` returns the parnote label formatted as a mark.
+ * Implemented the system for separators between multiple footnotes from `footmisc` and `manyfoot` and added package option `nomultiple` to disable.
+ * Internal: The package now uses a single counter (`\c@parnotemark`) for marks.
+
+**Revision 1: Released on Jan 3 2012**
+ * Initial release
diff --git a/macros/latex/contrib/parnotes/README.md b/macros/latex/contrib/parnotes/README.md
index 6041f64a23..d5391ca900 100644
--- a/macros/latex/contrib/parnotes/README.md
+++ b/macros/latex/contrib/parnotes/README.md
@@ -1,6 +1,5 @@
parnotes
========
-rev.3b (see notes below)
The parnotes package adds a new note type, `\parnote`. Parnotes are set as normal, running paragraphs and may be placed two ways: (1) automatically, at the end of the paragraph, or (2) manually, using the `\parnotes` command.
@@ -18,7 +17,7 @@ For more details, read the project documentation in `parnotes.pdf`.
Contributing
------------
-The development repository and the bug tracker for this package are hosted [on GitHub](https://github.com/chelh/LaTeX-parnotes) but see notes below.
+The development repository and the bug tracker were originally hosted [on GitHub](https://github.com/chelh/LaTeX-parnotes) but no longer maintained there.
License
-------
@@ -36,15 +35,17 @@ Current Status
--------------
The package appears to to be unmainted, i.e. the above address exists
-but is not monitored and the original author is not reachable.
+but is not monitored and the original author is no longer reachable.
+There have been small changes and corrections by Frank Mittelbach, see
+changes.txt for details.
-Small extensions in 2019 by Frank Mittelbach:
-
- - option `reset` (alias for restart to match other packages)
- - option `alph` (for alph style notes instead of arabic)
- - option `symbol` (for fnsymbol style notes)
-
-The documentation has been changed use freely available fonts so that it
+The documentation has been changed to use freely available fonts so that it
can be typeset by everybody (the previsous release used commercial fonts).
+The current version is hosted at
+https://github.com/FrankMittelbach/fmitex-parnotes and while you can
+add issues there I'm not promising that I look at them in a timely
+manner, i.e., the package is still in search of a new maintainer and
+I'm just jumped in temporarily.
+
diff --git a/macros/latex/contrib/parnotes/changes.txt b/macros/latex/contrib/parnotes/changes.txt
new file mode 100644
index 0000000000..4944f60d82
--- /dev/null
+++ b/macros/latex/contrib/parnotes/changes.txt
@@ -0,0 +1,14 @@
+2024-06-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * parnotes.sty:
+ Do not predefine \theparnotemark unless we are in an older LaTeX
+ format, because this is done by \newcounter and would generate an
+ unnecessary warning.
+
+2019-07-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * parnotes.sty:
+ - option `reset` (alias for restart to match other packages)
+ - option `alph` (for alph style notes instead of arabic)
+ - option `symbol` (for fnsymbol style notes)
+
diff --git a/macros/latex/contrib/parnotes/parnotes.pdf b/macros/latex/contrib/parnotes/parnotes.pdf
index 6a017d2964..bf105fad4a 100644
--- a/macros/latex/contrib/parnotes/parnotes.pdf
+++ b/macros/latex/contrib/parnotes/parnotes.pdf
Binary files differ
diff --git a/macros/latex/contrib/parnotes/parnotes.sty b/macros/latex/contrib/parnotes/parnotes.sty
index 65ed470461..d3d7eb8c64 100644
--- a/macros/latex/contrib/parnotes/parnotes.sty
+++ b/macros/latex/contrib/parnotes/parnotes.sty
@@ -1,6 +1,7 @@
% The parnotes package
% Notes after every paragraph, or elsewhere
% Copyright (c) 2016 Chelsea Hughes
+% Copyright (c) 2019,2024 Frank Mittelbach
%
% This work is distributed under the LaTeX Project Public License,
% version 1.3 or later, available at
@@ -18,14 +19,18 @@
%
% The package is currently unmainted, i.e. the above address exists but is not monitored
%
-% Small extensions in 2019 by Frank Mittelbach:
+% Small extensions by Frank Mittelbach, see changes.txt for details
+%
+
+% You might file issues on my Github repo for the package, but I do
+% not actively maintain that package (unless I think something is a
+% very serious bug), so a new maintainer is welcome
+%
+% https://github.com/FrankMittelbach/fmitex-parnotes
%
-% option reset (alias for restart to match other packages)
-% option alph (for alph style notes instead of arabic)
-% option symbol (for fnsymbol style notes)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{parnotes}[2019/07/23 rev. 3b Notes after every paragraph, or elsewhere]
+\ProvidesPackage{parnotes}[2024/06/12 rev. 3c Notes after every paragraph, or elsewhere]
%
% These are the user-modifiable format commands
@@ -34,12 +39,18 @@
% Format for parnotes - \PN@notes@shape is blank (\relax) by default
\providecommand{\parnotefmt}[1]{\footnotesize%
\PN@notes@shape\PN@narrower@optional\noindent #1}
+
% Number format (arabic, roman, etc.) for the parnote mark counter
-\providecommand{\theparnotemark}{\arabic{parnotemark}}
+%% FMi: will be set by \newcounter
+%\providecommand{\theparnotemark}{\arabic{parnotemark}}
+%% FMi -- end
+
% Minimum vertical space before and after parnotes
\providecommand{\parnotevskip}{\medskipamount}
+
% Full command used between parnotes
\providecommand{\parnoteintercmd}{\hspace{1em plus 0.3em minus 0.2em}}
+
% Basic formatting for parnote marks
\providecommand{\parnotecusmarkfmt}[1]{\textsuperscript{#1}}
@@ -52,6 +63,10 @@
\global\def\PN@text{}
% Counter for parnote marks
\newcounter{parnotemark}
+%% FMi: in case this package is used with an old LaTeX format
+\providecommand{\theparnotemark}{\arabic{parnotemark}}
+%% FMi -- end
+
% autopn environment name
\def\@PN@autopn{autopn}
% True if currently setting parnotes
diff --git a/macros/latex/contrib/parnotes/parnotes.tex b/macros/latex/contrib/parnotes/parnotes.tex
index 662dc1aa62..f6d64dab55 100644
--- a/macros/latex/contrib/parnotes/parnotes.tex
+++ b/macros/latex/contrib/parnotes/parnotes.tex
@@ -53,9 +53,9 @@
\usepackage{booktabs}
\usepackage{microtype}
-\title{The \textsf{parnotes} package\parnote{This is rev.~3b, last modified 2019/07/23.}}
+\title{The \textsf{parnotes} package\parnote{This is rev.~3c, last modified 2024/06/12.}}
\author{Chelsea Hughes\parnote{See \texttt{parnotes.sty} for copyright details. The package has currently no maintainer.}}
-\date{July 23, 2019}
+\date{June 12, 2024}
\renewcommand{\parnotefmt}[1]{\centerline{\colorbox{black!10}{\parbox{0.82\textwidth}{\footnotesize\sffamily\noindent #1}}}}
@@ -205,6 +205,10 @@ instead, \verb+\narrower+ must be placed manually within the new definition for
\section{Changelog}
{\raggedright
+\noindent\textbf{Revision 3c, released on June 12, 2024 (Frank Mittelbach)}
+\begin{itemize}
+\item Avoid an unnecessary warning about \verb=\theparnotemark=
+\end{itemize}
\noindent\textbf{Revision 3b, released on July 23, 2019 (Frank Mittelbach)}
\begin{itemize}
\item Added options \texttt{reset}, \texttt{alph} and \texttt{symbol}.
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..c6e5f5f519
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..01bae15339
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg
new file mode 100644
index 0000000000..fe2b4f1314
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
new file mode 100644
index 0000000000..cc969b31f7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+1.0.0.0.0.ogg
+1.0.0.0.0-1.ogg
+1.0.0.0.0-2.ogg
+1.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg
new file mode 100644
index 0000000000..ff6db0d091
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/1.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..67712c1745
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..f8f68b313b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg
new file mode 100644
index 0000000000..9478bdebbb
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
new file mode 100644
index 0000000000..38ff0aca21
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.0.0.0.0.ogg
+2.0.0.0.0-1.ogg
+2.0.0.0.0-2.ogg
+2.0.0.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg
new file mode 100644
index 0000000000..44d415fd31
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/2.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..d500956316
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..affd24989c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
new file mode 100644
index 0000000000..7126037f5d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.0.0.0.0.ogg
+3.0.0.0.0-1.ogg
+3.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
new file mode 100644
index 0000000000..d7147b5cd6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/3.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..f0230918a7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..28adc237f4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
new file mode 100644
index 0000000000..3eebda66de
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.0.0.0.0.ogg
+4.0.0.0.0-1.ogg
+4.0.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
new file mode 100644
index 0000000000..95da73a4f1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/4.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
new file mode 100644
index 0000000000..ed93b0f718
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+5.0.0.0.0.ogg
+5.1.0.0.0.ogg
+5.1.0.0.0-1.ogg
+5.2.0.0.0.ogg
+5.2.0.0.0-1.ogg
+5.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
new file mode 100644
index 0000000000..ba529eb4c3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..e987134adf
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u
new file mode 100644
index 0000000000..69e1f4059e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+5.1.0.0.0.ogg
+5.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg
new file mode 100644
index 0000000000..8eab7ae3fb
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg
new file mode 100644
index 0000000000..dfa846e2fc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg
new file mode 100644
index 0000000000..1404701800
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0-star-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u
new file mode 100644
index 0000000000..e5106355e4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+5.2.0.0.0.ogg
+5.2.0.0.0-1.ogg
+5.2.0.0.0-star-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg
new file mode 100644
index 0000000000..7e2bb4d502
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/5.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/author.ogg b/macros/latex/contrib/spelatex/Example/example-spel/author.ogg
new file mode 100644
index 0000000000..ee14dcc502
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/author.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/date.ogg b/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
new file mode 100644
index 0000000000..2c8670eb1a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/date.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example-spel/title.ogg b/macros/latex/contrib/spelatex/Example/example-spel/title.ogg
new file mode 100644
index 0000000000..f2fd9dac79
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example-spel/title.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example.pdf b/macros/latex/contrib/spelatex/Example/example.pdf
new file mode 100644
index 0000000000..bc37001f5d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/spelatex/Example/example.tex b/macros/latex/contrib/spelatex/Example/example.tex
new file mode 100644
index 0000000000..fc6c8a1ca5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/Example/example.tex
@@ -0,0 +1,113 @@
+\documentclass{article}
+
+\usepackage[dutch,english]{babel} % load babel before spel to avoid
+ % option clash!
+\selectlanguage{english}
+\usepackage[format=ogg]{spelatex}
+
+\newrobustcmd\CTAN{CTAN}
+\spelmacad{CTAN}{see-tan}
+\newrobustcmd\CPAN{CPAN}
+\spelmacad{CPAN}{see-pan}
+
+\title{\spelatex{} Example}
+\author{Walter Daems and Paul Levrie}
+\date{2011/04/12}
+\setlength\parindent{0em}
+\setlength\parskip{1ex}
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+\begin{spelchunk}
+ This file is just a simple showcase of the features of \spelatex.
+ Below, you'll find examples of:
+\end{spelchunk}
+
+\begin{itemize}
+ \spelitem{a simple equation}
+ \spelitem{a more complex equation}
+\end{itemize}
+
+\section{A simple equation}
+\label{eqn:simple}
+\begin{spelchunk}
+ Consider the following simple definition of a polynomial function and
+ check its spoken version by clicking on it.
+\end{spelchunk}
+
+\begin{spelchunk}
+ \begin{equation}
+ f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+ \end{equation}
+\end{spelchunk}
+\begin{spelchunk}
+ This seems a simple equation, however, it is not so straightforward
+ for an automated reader, to read it correctly.
+\end{spelchunk}
+
+\section{A more complex equation}
+\newcommand\xx[2]{\ensuremath{#1_{#2}}}
+\spelmacad{xx}[2]{#1 #2}
+
+\label{eqn:complex}
+\begin{spelchunk}
+ For a lightray that hits the parabola at the point
+ $P(t,9-\frac{t^2}{4})$, the reflected ray has slope $\tan 2\alpha$.
+ Since the slope of the tangent to the parabola at $P$ is
+ equal to $\tan\alpha = -\frac{t}{2}$, the equation of the
+ reflected ray is given by
+\end{spelchunk}
+\begin{spelchunk}
+ \[
+ y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
+ \]
+\end{spelchunk}
+
+\selectlanguage{dutch}
+\section{Een andere taal}
+\begin{spelchunk}
+\spelatex{} is ook volledig babel-actief, wat wil zeggen dat de
+voorleesstem de geselecteerde taal zal volgen.
+\end{spelchunk}
+
+\begin{spelchunk}
+ \[
+ y-9+\frac{t^2}{4} = -(x-t) \cdot \frac{4t}{4-t^2}
+ \]
+\end{spelchunk}
+
+\selectlanguage{english}
+\section{And some extras}
+\subsection{Citations}
+\begin{spelchunk}
+Two excellent repositories are \CPAN{} \cite{CPAN} and \CTAN{} \cite{CTAN}.
+\end{spelchunk}
+
+\subsection{References to labels}
+\begin{spelchunk}
+Section~\ref{eqn:simple} contains an illustration of a simple
+equation. For a more complex equation, we refer the user to
+section~\ref{eqn:complex}.
+\end{spelchunk}
+
+\bibliographystyle{alpha}
+
+\begin{thebibliography}{99}
+
+\bibitem{CTAN}
+The Comprehensive \TeX{} Archive Network.
+\newblock \url{http://www.ctan.org}.
+\newblock online, accessed in August 2021.
+
+\bibitem{CPAN}
+The Comprehensive Perl Archive Network.
+\newblock \url{http://www.cpan.org}.
+\newblock online, accessed in August 2021.
+
+\end{thebibliography}{99}
+
+\end{document}
diff --git a/macros/latex/contrib/spelatex/LICENSE b/macros/latex/contrib/spelatex/LICENSE
new file mode 100644
index 0000000000..ee327b8405
--- /dev/null
+++ b/macros/latex/contrib/spelatex/LICENSE
@@ -0,0 +1,9 @@
+License
+=======
+All files of the reader package are subject to the LPPL.
+
+The reader package may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+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.
diff --git a/macros/latex/contrib/spelatex/README b/macros/latex/contrib/spelatex/README
new file mode 100644
index 0000000000..f20fa8b948
--- /dev/null
+++ b/macros/latex/contrib/spelatex/README
@@ -0,0 +1,61 @@
+********************************************************************
+* *
+* The spelatex package *
+* *
+********************************************************************
+ Walter Daems
+ walter.daems(at)uantwerpen.be
+
+
+SpeLaTeX equips the PDF that is generated with LaTeX with hyperlinks
+to audio files that contain the spoken equivalent of the original
+text, equations, figures and tables.
+
+The audio files can be automatically generated using a Perl-script
+called spel-wizard.pl (part of the SpeL::Wizard module available on
+CPAN). This script interfaces with locally installed text-to-speech
+software or with online available (paying) cloud services to generate
+the audio files. To this end, the LaTeX chunks of your text are parsed
+and translated to 'natural language'.
+
+SpeLaTeX is babel enabled, such that your text is read with the
+correct pronunciation corresponding to your language. So far, it
+provides the languages English and Dutch, but it will be extended in
+the future.
+
+You can package your PDF together with the audio-files (in your
+favorite archive format) and make it available to your users, such
+that the only requirements to read your text and listen to the audio
+are a suited PDF reader and media player. Not all readers and players
+work. Working readers are: okular, acrobat reader, pdfxchange
+viewer. Working media players are: SoX, totem, vlc.
+
+The package is part of the SpeLbox package, consisting of
+- an Emacs Org-mode exporter, called ox-spelatex (under development,
+ will be released soon)
+- the LaTeX spelatex package itself
+- a perl script 'spel-wizard.pl' available from CPAN in the SpeL::Wizard
+ module, that converts text to speech (doing the magic, parsing your
+ equations).
+
+The package also functions without the Org-Mode exporter, the latter
+just being there to make use more convenient. For the text-to-speech
+conversion, one can use free options (festival, balabolka, ...) or
+paying services (e.g. AWS polly).
+
+Do you like this package? You're welcome to send us beer, wine, or
+just an e-mail with kind words.
+
+If you want to contribute to the package (e.g., by providing some
+extra babel support for your language), please contact me.
+
+License
+=======
+
+see file LICENSE
+
+
+History
+=======
+
+see PDF documentation
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..9ba62a3286
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-2.ogg
new file mode 100644
index 0000000000..ec56701779
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-3.ogg
new file mode 100644
index 0000000000..2f4f668f80
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-4.ogg
new file mode 100644
index 0000000000..8d22f2a376
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-5.ogg
new file mode 100644
index 0000000000..3c887f9036
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-6.ogg
new file mode 100644
index 0000000000..5463e99a97
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-7.ogg
new file mode 100644
index 0000000000..9e9866498a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-8.ogg
new file mode 100644
index 0000000000..552a79bc59
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
new file mode 100644
index 0000000000..e1ba391506
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.m3u
@@ -0,0 +1,11 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+1.0.0.0.0.ogg
+1.0.0.0.0-1.ogg
+1.0.0.0.0-2.ogg
+1.0.0.0.0-3.ogg
+1.0.0.0.0-4.ogg
+1.0.0.0.0-5.ogg
+1.0.0.0.0-6.ogg
+1.0.0.0.0-7.ogg
+1.0.0.0.0-8.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
new file mode 100644
index 0000000000..f41ff41400
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/1.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
new file mode 100644
index 0000000000..97f979ffb6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.m3u
@@ -0,0 +1,55 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.0.0.0.0.ogg
+2.1.0.0.0.ogg
+2.1.0.0.0-1.ogg
+2.1.0.0.0-2.ogg
+2.1.0.0.0-3.ogg
+2.1.0.0.0-4.ogg
+2.1.0.0.0-5.ogg
+2.1.0.0.0-6.ogg
+footnote-1.ogg
+2.2.0.0.0.ogg
+2.2.1.0.0.ogg
+2.2.1.0.0-1.ogg
+2.2.1.0.0-2.ogg
+2.2.1.0.0-3.ogg
+2.2.1.0.0-4.ogg
+2.2.2.0.0.ogg
+2.2.2.0.0-1.ogg
+2.2.2.0.0-2.ogg
+2.2.2.0.0-3.ogg
+2.2.2.0.0-4.ogg
+footnote-2.ogg
+2.2.2.0.0-5.ogg
+2.2.2.0.0-6.ogg
+2.2.2.0.0-7.ogg
+2.2.2.0.0-8.ogg
+2.2.3.0.0.ogg
+2.2.3.0.0-1.ogg
+2.2.3.0.0-2.ogg
+2.2.4.0.0.ogg
+2.2.4.0.0-1.ogg
+2.2.4.0.0-2.ogg
+2.2.4.0.0-3.ogg
+2.2.4.0.0-4.ogg
+2.2.4.0.0-5.ogg
+2.2.4.0.0-6.ogg
+2.2.5.0.0.ogg
+2.2.5.0.0-1.ogg
+2.2.5.0.0-2.ogg
+2.2.6.0.0.ogg
+2.2.6.0.0-1.ogg
+2.2.6.0.0-2.ogg
+2.2.6.0.0-3.ogg
+2.3.0.0.0.ogg
+2.3.0.0.0-1.ogg
+2.3.0.0.0-2.ogg
+2.3.0.0.0-3.ogg
+2.3.0.0.0-4.ogg
+2.4.0.0.0.ogg
+2.4.0.0.0-1.ogg
+2.4.0.0.0-2.ogg
+2.4.0.0.0-3.ogg
+2.4.0.0.0-4.ogg
+2.4.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
new file mode 100644
index 0000000000..b25506f74b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..ebf184d38f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
new file mode 100644
index 0000000000..711dc66367
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
new file mode 100644
index 0000000000..c8926c15ab
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
new file mode 100644
index 0000000000..62f31b27b8
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
new file mode 100644
index 0000000000..7d21a4318b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
new file mode 100644
index 0000000000..e23e519fa0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
new file mode 100644
index 0000000000..639be865ec
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.m3u
@@ -0,0 +1,10 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.1.0.0.0.ogg
+2.1.0.0.0-1.ogg
+2.1.0.0.0-2.ogg
+2.1.0.0.0-3.ogg
+2.1.0.0.0-4.ogg
+2.1.0.0.0-5.ogg
+2.1.0.0.0-6.ogg
+footnote-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
new file mode 100644
index 0000000000..7360d8018a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
new file mode 100644
index 0000000000..0963abff03
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.m3u
@@ -0,0 +1,35 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.0.0.0.ogg
+2.2.1.0.0.ogg
+2.2.1.0.0-1.ogg
+2.2.1.0.0-2.ogg
+2.2.1.0.0-3.ogg
+2.2.1.0.0-4.ogg
+2.2.2.0.0.ogg
+2.2.2.0.0-1.ogg
+2.2.2.0.0-2.ogg
+2.2.2.0.0-3.ogg
+2.2.2.0.0-4.ogg
+footnote-2.ogg
+2.2.2.0.0-5.ogg
+2.2.2.0.0-6.ogg
+2.2.2.0.0-7.ogg
+2.2.2.0.0-8.ogg
+2.2.3.0.0.ogg
+2.2.3.0.0-1.ogg
+2.2.3.0.0-2.ogg
+2.2.4.0.0.ogg
+2.2.4.0.0-1.ogg
+2.2.4.0.0-2.ogg
+2.2.4.0.0-3.ogg
+2.2.4.0.0-4.ogg
+2.2.4.0.0-5.ogg
+2.2.4.0.0-6.ogg
+2.2.5.0.0.ogg
+2.2.5.0.0-1.ogg
+2.2.5.0.0-2.ogg
+2.2.6.0.0.ogg
+2.2.6.0.0-1.ogg
+2.2.6.0.0-2.ogg
+2.2.6.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
new file mode 100644
index 0000000000..15e3c2f0c9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
new file mode 100644
index 0000000000..df73c03d7d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
new file mode 100644
index 0000000000..7575f0af11
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
new file mode 100644
index 0000000000..627a271f19
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
new file mode 100644
index 0000000000..22f6edf4c9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
new file mode 100644
index 0000000000..98183521d8
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.1.0.0.ogg
+2.2.1.0.0-1.ogg
+2.2.1.0.0-2.ogg
+2.2.1.0.0-3.ogg
+2.2.1.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
new file mode 100644
index 0000000000..d62c585ba2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
new file mode 100644
index 0000000000..0f9c75e55d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
new file mode 100644
index 0000000000..472d803099
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
new file mode 100644
index 0000000000..640582bc51
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg
new file mode 100644
index 0000000000..a556ad7da6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg
new file mode 100644
index 0000000000..931fce4644
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg
new file mode 100644
index 0000000000..f29a078a78
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg
new file mode 100644
index 0000000000..0f12a59f39
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg
new file mode 100644
index 0000000000..b481ec94e5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
new file mode 100644
index 0000000000..fb40884589
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.m3u
@@ -0,0 +1,12 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.2.0.0.ogg
+2.2.2.0.0-1.ogg
+2.2.2.0.0-2.ogg
+2.2.2.0.0-3.ogg
+2.2.2.0.0-4.ogg
+footnote-2.ogg
+2.2.2.0.0-5.ogg
+2.2.2.0.0-6.ogg
+2.2.2.0.0-7.ogg
+2.2.2.0.0-8.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
new file mode 100644
index 0000000000..74ae517fa6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
new file mode 100644
index 0000000000..ef59c30a4d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
new file mode 100644
index 0000000000..dd8e189573
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
new file mode 100644
index 0000000000..db806b06e6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.3.0.0.ogg
+2.2.3.0.0-1.ogg
+2.2.3.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
new file mode 100644
index 0000000000..a1832ce2db
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
new file mode 100644
index 0000000000..7eda3b6ebd
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
new file mode 100644
index 0000000000..be39c9b098
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
new file mode 100644
index 0000000000..19449c3761
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg
new file mode 100644
index 0000000000..c83f2d5cae
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg
new file mode 100644
index 0000000000..550e0e4712
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg
new file mode 100644
index 0000000000..a725418127
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
new file mode 100644
index 0000000000..5d6b37fe95
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.m3u
@@ -0,0 +1,9 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.4.0.0.ogg
+2.2.4.0.0-1.ogg
+2.2.4.0.0-2.ogg
+2.2.4.0.0-3.ogg
+2.2.4.0.0-4.ogg
+2.2.4.0.0-5.ogg
+2.2.4.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
new file mode 100644
index 0000000000..ee37616991
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg
new file mode 100644
index 0000000000..d23984a766
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg
new file mode 100644
index 0000000000..8c1af81380
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u
new file mode 100644
index 0000000000..1a186d15de
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.5.0.0.ogg
+2.2.5.0.0-1.ogg
+2.2.5.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg
new file mode 100644
index 0000000000..d2195a26cc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg
new file mode 100644
index 0000000000..ff13552a5d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg
new file mode 100644
index 0000000000..4b93672608
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg
new file mode 100644
index 0000000000..9d2521c725
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u
new file mode 100644
index 0000000000..ae39555217
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.2.6.0.0.ogg
+2.2.6.0.0-1.ogg
+2.2.6.0.0-2.ogg
+2.2.6.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg
new file mode 100644
index 0000000000..8c82713973
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.2.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
new file mode 100644
index 0000000000..86c0cc56a9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
new file mode 100644
index 0000000000..326c868765
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
new file mode 100644
index 0000000000..9d5ab0c4fe
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
new file mode 100644
index 0000000000..1b0411966c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
new file mode 100644
index 0000000000..8652268b66
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.3.0.0.0.ogg
+2.3.0.0.0-1.ogg
+2.3.0.0.0-2.ogg
+2.3.0.0.0-3.ogg
+2.3.0.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
new file mode 100644
index 0000000000..955a986c87
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
new file mode 100644
index 0000000000..a750c53cfb
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
new file mode 100644
index 0000000000..5054e7d840
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
new file mode 100644
index 0000000000..1cf543aad4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
new file mode 100644
index 0000000000..a585c2e035
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg
new file mode 100644
index 0000000000..59f9b5a3c6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
new file mode 100644
index 0000000000..ee754a4627
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+2.4.0.0.0.ogg
+2.4.0.0.0-1.ogg
+2.4.0.0.0-2.ogg
+2.4.0.0.0-3.ogg
+2.4.0.0.0-4.ogg
+2.4.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
new file mode 100644
index 0000000000..32673df314
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/2.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
new file mode 100644
index 0000000000..bd47879ec2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.m3u
@@ -0,0 +1,22 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.0.0.0.0.ogg
+3.1.0.0.0.ogg
+3.1.0.0.0-1.ogg
+3.1.0.0.0-2.ogg
+3.2.0.0.0.ogg
+3.2.1.0.0.ogg
+3.2.1.0.0-1.ogg
+3.2.1.0.0-2.ogg
+3.2.1.0.0-3.ogg
+3.2.1.0.0-4.ogg
+3.2.1.0.0-5.ogg
+3.2.2.0.0.ogg
+3.2.2.0.0-1.ogg
+3.2.2.0.0-2.ogg
+3.2.2.0.0-3.ogg
+3.2.2.0.0-4.ogg
+3.3.0.0.0.ogg
+3.3.0.0.0-1.ogg
+3.4.0.0.0.ogg
+3.4.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
new file mode 100644
index 0000000000..3f7aa5376b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..33377ddc0a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
new file mode 100644
index 0000000000..6198c5ab72
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
new file mode 100644
index 0000000000..41ec3d4dfc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.1.0.0.0.ogg
+3.1.0.0.0-1.ogg
+3.1.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
new file mode 100644
index 0000000000..8278d299ee
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
new file mode 100644
index 0000000000..9a0369de96
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.m3u
@@ -0,0 +1,14 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.2.0.0.0.ogg
+3.2.1.0.0.ogg
+3.2.1.0.0-1.ogg
+3.2.1.0.0-2.ogg
+3.2.1.0.0-3.ogg
+3.2.1.0.0-4.ogg
+3.2.1.0.0-5.ogg
+3.2.2.0.0.ogg
+3.2.2.0.0-1.ogg
+3.2.2.0.0-2.ogg
+3.2.2.0.0-3.ogg
+3.2.2.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
new file mode 100644
index 0000000000..889afb6f22
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
new file mode 100644
index 0000000000..d47169eb17
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
new file mode 100644
index 0000000000..ac7fee1a6e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
new file mode 100644
index 0000000000..226d8aaa40
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
new file mode 100644
index 0000000000..082809585d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
new file mode 100644
index 0000000000..44ba2dd04a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
new file mode 100644
index 0000000000..4dca129e2c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.2.1.0.0.ogg
+3.2.1.0.0-1.ogg
+3.2.1.0.0-2.ogg
+3.2.1.0.0-3.ogg
+3.2.1.0.0-4.ogg
+3.2.1.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
new file mode 100644
index 0000000000..cf767af99b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
new file mode 100644
index 0000000000..09a9ae2f64
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
new file mode 100644
index 0000000000..de607f4c66
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
new file mode 100644
index 0000000000..b843922b65
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
new file mode 100644
index 0000000000..7cec0de3b9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
new file mode 100644
index 0000000000..403db13853
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.2.2.0.0.ogg
+3.2.2.0.0-1.ogg
+3.2.2.0.0-2.ogg
+3.2.2.0.0-3.ogg
+3.2.2.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
new file mode 100644
index 0000000000..afff242cea
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
new file mode 100644
index 0000000000..8d21f12d67
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
new file mode 100644
index 0000000000..6fc1783bde
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.3.0.0.0.ogg
+3.3.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
new file mode 100644
index 0000000000..f144a1d1a6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
new file mode 100644
index 0000000000..03e55c61aa
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
new file mode 100644
index 0000000000..f1b74f5990
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+3.4.0.0.0.ogg
+3.4.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
new file mode 100644
index 0000000000..6da364e1f3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/3.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
new file mode 100644
index 0000000000..383a745a26
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.m3u
@@ -0,0 +1,52 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.0.0.0.0.ogg
+4.1.0.0.0.ogg
+4.1.0.0.0-1.ogg
+4.1.0.0.0-2.ogg
+4.1.0.0.0-3.ogg
+4.1.0.0.0-4.ogg
+4.1.0.0.0-5.ogg
+4.1.0.0.0-6.ogg
+4.1.0.0.0-7.ogg
+4.1.0.0.0-8.ogg
+4.1.1.0.0.ogg
+4.1.1.0.0-1.ogg
+4.1.1.0.0-2.ogg
+4.1.1.0.0-3.ogg
+4.1.1.0.0-4.ogg
+4.1.2.0.0.ogg
+4.1.2.0.0-1.ogg
+4.1.2.0.0-2.ogg
+4.1.3.0.0.ogg
+4.1.3.0.0-1.ogg
+4.1.3.0.0-2.ogg
+4.1.3.0.0-3.ogg
+4.1.3.0.0-4.ogg
+4.1.3.0.0-5.ogg
+4.1.4.0.0.ogg
+4.1.4.0.0-1.ogg
+4.1.4.0.0-2.ogg
+4.1.4.0.0-3.ogg
+4.1.4.0.0-4.ogg
+4.1.5.0.0.ogg
+4.1.5.0.0-1.ogg
+4.1.5.0.0-2.ogg
+4.1.5.0.0-3.ogg
+4.1.5.0.0-4.ogg
+4.1.6.0.0.ogg
+4.1.6.0.0-1.ogg
+4.1.6.0.0-2.ogg
+4.1.6.0.0-3.ogg
+4.1.6.0.0-4.ogg
+4.1.6.0.0-5.ogg
+4.1.7.0.0.ogg
+4.1.7.0.0-1.ogg
+4.1.7.0.0-2.ogg
+4.1.7.0.0-3.ogg
+4.2.0.0.0.ogg
+4.2.0.0.0-1.ogg
+4.2.0.0.0-2.ogg
+4.2.0.0.0-3.ogg
+4.2.0.0.0-4.ogg
+4.2.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
new file mode 100644
index 0000000000..e05874d6ba
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..881c0e7c74
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
new file mode 100644
index 0000000000..a1483cea12
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
new file mode 100644
index 0000000000..44ca72ba64
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
new file mode 100644
index 0000000000..39a304fb03
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
new file mode 100644
index 0000000000..67fa7fce21
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
new file mode 100644
index 0000000000..8fd82f60d0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
new file mode 100644
index 0000000000..159cc44e6a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg
new file mode 100644
index 0000000000..d70d6468e8
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
new file mode 100644
index 0000000000..a40729cb4f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.m3u
@@ -0,0 +1,45 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.0.0.0.ogg
+4.1.0.0.0-1.ogg
+4.1.0.0.0-2.ogg
+4.1.0.0.0-3.ogg
+4.1.0.0.0-4.ogg
+4.1.0.0.0-5.ogg
+4.1.0.0.0-6.ogg
+4.1.0.0.0-7.ogg
+4.1.0.0.0-8.ogg
+4.1.1.0.0.ogg
+4.1.1.0.0-1.ogg
+4.1.1.0.0-2.ogg
+4.1.1.0.0-3.ogg
+4.1.1.0.0-4.ogg
+4.1.2.0.0.ogg
+4.1.2.0.0-1.ogg
+4.1.2.0.0-2.ogg
+4.1.3.0.0.ogg
+4.1.3.0.0-1.ogg
+4.1.3.0.0-2.ogg
+4.1.3.0.0-3.ogg
+4.1.3.0.0-4.ogg
+4.1.3.0.0-5.ogg
+4.1.4.0.0.ogg
+4.1.4.0.0-1.ogg
+4.1.4.0.0-2.ogg
+4.1.4.0.0-3.ogg
+4.1.4.0.0-4.ogg
+4.1.5.0.0.ogg
+4.1.5.0.0-1.ogg
+4.1.5.0.0-2.ogg
+4.1.5.0.0-3.ogg
+4.1.5.0.0-4.ogg
+4.1.6.0.0.ogg
+4.1.6.0.0-1.ogg
+4.1.6.0.0-2.ogg
+4.1.6.0.0-3.ogg
+4.1.6.0.0-4.ogg
+4.1.6.0.0-5.ogg
+4.1.7.0.0.ogg
+4.1.7.0.0-1.ogg
+4.1.7.0.0-2.ogg
+4.1.7.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
new file mode 100644
index 0000000000..0ead8d7bca
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
new file mode 100644
index 0000000000..3daf110acc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
new file mode 100644
index 0000000000..8720221612
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
new file mode 100644
index 0000000000..f7f6c916f7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
new file mode 100644
index 0000000000..f05f6410f6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
new file mode 100644
index 0000000000..c456177811
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.1.0.0.ogg
+4.1.1.0.0-1.ogg
+4.1.1.0.0-2.ogg
+4.1.1.0.0-3.ogg
+4.1.1.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
new file mode 100644
index 0000000000..b823094253
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
new file mode 100644
index 0000000000..94a8e327b1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
new file mode 100644
index 0000000000..fa1a302bb6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
new file mode 100644
index 0000000000..a00d94f72f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.2.0.0.ogg
+4.1.2.0.0-1.ogg
+4.1.2.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
new file mode 100644
index 0000000000..a3690bb480
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
new file mode 100644
index 0000000000..ce7eb24a73
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
new file mode 100644
index 0000000000..e303e96f8e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
new file mode 100644
index 0000000000..6b766c4f94
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
new file mode 100644
index 0000000000..bdbb7e4f6e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
new file mode 100644
index 0000000000..40c39f858f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
new file mode 100644
index 0000000000..6a3684a7b3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.3.0.0.ogg
+4.1.3.0.0-1.ogg
+4.1.3.0.0-2.ogg
+4.1.3.0.0-3.ogg
+4.1.3.0.0-4.ogg
+4.1.3.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
new file mode 100644
index 0000000000..7f0ad7c53a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
new file mode 100644
index 0000000000..6052ee961a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
new file mode 100644
index 0000000000..362145b403
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg
new file mode 100644
index 0000000000..9d0007377d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg
new file mode 100644
index 0000000000..224169f8ee
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
new file mode 100644
index 0000000000..e9a7ce2db1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.4.0.0.ogg
+4.1.4.0.0-1.ogg
+4.1.4.0.0-2.ogg
+4.1.4.0.0-3.ogg
+4.1.4.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
new file mode 100644
index 0000000000..e7b7866591
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
new file mode 100644
index 0000000000..1949056128
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
new file mode 100644
index 0000000000..247c35c3a4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
new file mode 100644
index 0000000000..7f3d1fb857
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
new file mode 100644
index 0000000000..3f1990e971
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
new file mode 100644
index 0000000000..46999ff035
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.5.0.0.ogg
+4.1.5.0.0-1.ogg
+4.1.5.0.0-2.ogg
+4.1.5.0.0-3.ogg
+4.1.5.0.0-4.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
new file mode 100644
index 0000000000..2e17823934
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
new file mode 100644
index 0000000000..a3f5673c63
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
new file mode 100644
index 0000000000..e4469c62f8
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
new file mode 100644
index 0000000000..2a89c9e2af
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
new file mode 100644
index 0000000000..da6ed1a16f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg
new file mode 100644
index 0000000000..575d63530a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
new file mode 100644
index 0000000000..1b21289bb0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.6.0.0.ogg
+4.1.6.0.0-1.ogg
+4.1.6.0.0-2.ogg
+4.1.6.0.0-3.ogg
+4.1.6.0.0-4.ogg
+4.1.6.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
new file mode 100644
index 0000000000..e417d4427f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
new file mode 100644
index 0000000000..cc6324a68b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
new file mode 100644
index 0000000000..13ad4e9f27
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
new file mode 100644
index 0000000000..8fc8d1355e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
new file mode 100644
index 0000000000..0c64e22969
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.1.7.0.0.ogg
+4.1.7.0.0-1.ogg
+4.1.7.0.0-2.ogg
+4.1.7.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
new file mode 100644
index 0000000000..5023aa141e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.1.7.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
new file mode 100644
index 0000000000..41638b4056
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
new file mode 100644
index 0000000000..084dd497a3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
new file mode 100644
index 0000000000..e119560324
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
new file mode 100644
index 0000000000..0f703d3092
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg
new file mode 100644
index 0000000000..6b05a09f2e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
new file mode 100644
index 0000000000..dc99929f4a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.m3u
@@ -0,0 +1,8 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+4.2.0.0.0.ogg
+4.2.0.0.0-1.ogg
+4.2.0.0.0-2.ogg
+4.2.0.0.0-3.ogg
+4.2.0.0.0-4.ogg
+4.2.0.0.0-5.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
new file mode 100644
index 0000000000..4a86da2c86
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/4.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..c039789ca4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
new file mode 100644
index 0000000000..270a6f6c2b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+5.0.0.0.0.ogg
+5.0.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
new file mode 100644
index 0000000000..9d384db35b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/5.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..2e271768ea
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
new file mode 100644
index 0000000000..72bb53a3a1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.m3u
@@ -0,0 +1,47 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.0.0.0.0.ogg
+6.0.0.0.0-1.ogg
+6.1.0.0.0.ogg
+6.1.0.0.0-1.ogg
+6.2.0.0.0.ogg
+6.2.1.0.0.ogg
+6.2.1.0.0-1.ogg
+6.2.2.0.0.ogg
+6.2.2.0.0-1.ogg
+6.3.0.0.0.ogg
+6.3.1.0.0.ogg
+6.3.1.0.0-1.ogg
+6.3.2.0.0.ogg
+6.3.2.0.0-1.ogg
+6.3.2.0.0-2.ogg
+6.3.2.0.0-3.ogg
+6.3.2.0.0-4.ogg
+6.3.2.0.0-5.ogg
+6.3.2.0.0-6.ogg
+6.3.3.0.0.ogg
+6.3.3.0.0-1.ogg
+6.4.0.0.0.ogg
+6.4.0.0.0-1.ogg
+6.4.0.0.0-2.ogg
+6.5.0.0.0.ogg
+6.5.0.0.0-1.ogg
+6.6.0.0.0.ogg
+6.6.1.0.0.ogg
+6.6.1.0.0-1.ogg
+6.6.1.0.0-2.ogg
+6.6.1.0.0-3.ogg
+6.6.2.0.0.ogg
+6.6.2.0.0-1.ogg
+6.7.0.0.0.ogg
+6.7.0.0.0-1.ogg
+6.7.0.0.0-2.ogg
+6.7.0.0.0-3.ogg
+6.7.0.0.0-4.ogg
+6.7.0.0.0-5.ogg
+6.7.0.0.0-6.ogg
+6.7.0.0.0-7.ogg
+6.7.0.0.0-8.ogg
+6.7.0.0.0-9.ogg
+6.7.0.0.0-10.ogg
+6.7.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
new file mode 100644
index 0000000000..f1b641261b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
new file mode 100644
index 0000000000..ac16291da1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
new file mode 100644
index 0000000000..523f40cae3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.1.0.0.0.ogg
+6.1.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
new file mode 100644
index 0000000000..8f149312f2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
new file mode 100644
index 0000000000..e204a3185c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.2.0.0.0.ogg
+6.2.1.0.0.ogg
+6.2.1.0.0-1.ogg
+6.2.2.0.0.ogg
+6.2.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
new file mode 100644
index 0000000000..122a2dbbcf
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
new file mode 100644
index 0000000000..464d55991a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
new file mode 100644
index 0000000000..a5741a63f1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.2.1.0.0.ogg
+6.2.1.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
new file mode 100644
index 0000000000..dcdb3dc3f2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
new file mode 100644
index 0000000000..b3f0b35ec6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
new file mode 100644
index 0000000000..47a9259f45
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.2.2.0.0.ogg
+6.2.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
new file mode 100644
index 0000000000..0d189cb732
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.2.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
new file mode 100644
index 0000000000..5f1ab83f22
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.m3u
@@ -0,0 +1,14 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.3.0.0.0.ogg
+6.3.1.0.0.ogg
+6.3.1.0.0-1.ogg
+6.3.2.0.0.ogg
+6.3.2.0.0-1.ogg
+6.3.2.0.0-2.ogg
+6.3.2.0.0-3.ogg
+6.3.2.0.0-4.ogg
+6.3.2.0.0-5.ogg
+6.3.2.0.0-6.ogg
+6.3.3.0.0.ogg
+6.3.3.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
new file mode 100644
index 0000000000..c5129d96af
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
new file mode 100644
index 0000000000..f8f68b313b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
new file mode 100644
index 0000000000..03c58738cd
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.3.1.0.0.ogg
+6.3.1.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
new file mode 100644
index 0000000000..13dc05e262
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
new file mode 100644
index 0000000000..260158312f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
new file mode 100644
index 0000000000..8a43e52e34
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
new file mode 100644
index 0000000000..5de30a7757
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
new file mode 100644
index 0000000000..1e35aaed0f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
new file mode 100644
index 0000000000..bcb48dda01
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
new file mode 100644
index 0000000000..9b1d6ab7d7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
new file mode 100644
index 0000000000..9932c5cbfc
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.m3u
@@ -0,0 +1,9 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.3.2.0.0.ogg
+6.3.2.0.0-1.ogg
+6.3.2.0.0-2.ogg
+6.3.2.0.0-3.ogg
+6.3.2.0.0-4.ogg
+6.3.2.0.0-5.ogg
+6.3.2.0.0-6.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
new file mode 100644
index 0000000000..d2a70dbf20
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
new file mode 100644
index 0000000000..a1f79c1f83
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
new file mode 100644
index 0000000000..c4fd845f5b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.3.3.0.0.ogg
+6.3.3.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
new file mode 100644
index 0000000000..b7c47100a5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.3.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
new file mode 100644
index 0000000000..90bf30c41f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
new file mode 100644
index 0000000000..201f087a7e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
new file mode 100644
index 0000000000..ef2790eb3c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.4.0.0.0.ogg
+6.4.0.0.0-1.ogg
+6.4.0.0.0-2.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
new file mode 100644
index 0000000000..68e58600eb
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
new file mode 100644
index 0000000000..6aebe041f2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
new file mode 100644
index 0000000000..1d76c03a45
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.5.0.0.0.ogg
+6.5.0.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
new file mode 100644
index 0000000000..53d769aac7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.5.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
new file mode 100644
index 0000000000..a3e705a5a5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.m3u
@@ -0,0 +1,9 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.6.0.0.0.ogg
+6.6.1.0.0.ogg
+6.6.1.0.0-1.ogg
+6.6.1.0.0-2.ogg
+6.6.1.0.0-3.ogg
+6.6.2.0.0.ogg
+6.6.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
new file mode 100644
index 0000000000..700b8c7e9a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
new file mode 100644
index 0000000000..abd95d02ff
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
new file mode 100644
index 0000000000..5200b6e405
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
new file mode 100644
index 0000000000..194c9db5ce
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
new file mode 100644
index 0000000000..e45e6c3453
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.6.1.0.0.ogg
+6.6.1.0.0-1.ogg
+6.6.1.0.0-2.ogg
+6.6.1.0.0-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
new file mode 100644
index 0000000000..5c098338e6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
new file mode 100644
index 0000000000..5eae47cfde
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
new file mode 100644
index 0000000000..fbb664ca1e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.m3u
@@ -0,0 +1,4 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.6.2.0.0.ogg
+6.6.2.0.0-1.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
new file mode 100644
index 0000000000..a36c28ebe7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.6.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
new file mode 100644
index 0000000000..d500956316
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
new file mode 100644
index 0000000000..a34acee074
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-10.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg
new file mode 100644
index 0000000000..7a635a44b2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-11.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
new file mode 100644
index 0000000000..affd24989c
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
new file mode 100644
index 0000000000..9fe42a9abd
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
new file mode 100644
index 0000000000..91a5eb0453
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-4.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
new file mode 100644
index 0000000000..0268496ef5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-5.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
new file mode 100644
index 0000000000..c4bc4dfd11
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-6.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
new file mode 100644
index 0000000000..2bb5feffa5
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-7.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
new file mode 100644
index 0000000000..9e0a398575
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-8.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
new file mode 100644
index 0000000000..e1185b7cd4
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0-9.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
new file mode 100644
index 0000000000..81788dd3a9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.m3u
@@ -0,0 +1,14 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+6.7.0.0.0.ogg
+6.7.0.0.0-1.ogg
+6.7.0.0.0-2.ogg
+6.7.0.0.0-3.ogg
+6.7.0.0.0-4.ogg
+6.7.0.0.0-5.ogg
+6.7.0.0.0-6.ogg
+6.7.0.0.0-7.ogg
+6.7.0.0.0-8.ogg
+6.7.0.0.0-9.ogg
+6.7.0.0.0-10.ogg
+6.7.0.0.0-11.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
new file mode 100644
index 0000000000..1af6116cd1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/6.7.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
new file mode 100644
index 0000000000..dab48d1236
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
new file mode 100644
index 0000000000..cdb3a130d6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.m3u
@@ -0,0 +1,31 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.0.0.0.0.ogg
+7.0.0.0.0-1.ogg
+7.1.0.0.0.ogg
+7.2.0.0.0.ogg
+7.3.0.0.0.ogg
+7.4.0.0.0.ogg
+7.5.0.0.0.ogg
+7.6.0.0.0.ogg
+7.7.0.0.0.ogg
+7.8.0.0.0.ogg
+7.8.1.0.0.ogg
+7.8.2.0.0.ogg
+7.8.3.0.0.ogg
+7.8.4.0.0.ogg
+7.8.5.0.0.ogg
+7.8.6.0.0.ogg
+7.8.7.0.0.ogg
+7.9.0.0.0.ogg
+7.9.1.0.0.ogg
+7.9.2.0.0.ogg
+7.10.0.0.0.ogg
+7.10.1.0.0.ogg
+7.10.2.0.0.ogg
+7.10.3.0.0.ogg
+7.10.4.0.0.ogg
+7.11.0.0.0.ogg
+7.11.0.0.0-star-1.ogg
+7.11.0.0.0-star-2.ogg
+7.11.0.0.0-star-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
new file mode 100644
index 0000000000..2208a529c9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.0.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
new file mode 100644
index 0000000000..aad8452193
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.1.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
new file mode 100644
index 0000000000..4ea4028b7b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.1.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
new file mode 100644
index 0000000000..4e2e99f016
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.m3u
@@ -0,0 +1,7 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.10.0.0.0.ogg
+7.10.1.0.0.ogg
+7.10.2.0.0.ogg
+7.10.3.0.0.ogg
+7.10.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
new file mode 100644
index 0000000000..07be005182
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
new file mode 100644
index 0000000000..9118733d86
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.10.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
new file mode 100644
index 0000000000..68f3689b55
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
new file mode 100644
index 0000000000..6eecefd465
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.10.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
new file mode 100644
index 0000000000..f368c080f1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u
new file mode 100644
index 0000000000..3adc9502ac
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.10.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg
new file mode 100644
index 0000000000..ffd90a79f0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u
new file mode 100644
index 0000000000..552f4fbbec
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.10.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg
new file mode 100644
index 0000000000..c7c7756494
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.10.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-1.ogg
new file mode 100644
index 0000000000..1404701800
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-2.ogg
new file mode 100644
index 0000000000..38f378745d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-3.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-3.ogg
new file mode 100644
index 0000000000..a9bf761bd9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0-star-3.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
new file mode 100644
index 0000000000..9b0b7d82f3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.m3u
@@ -0,0 +1,6 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.11.0.0.0.ogg
+7.11.0.0.0-star-1.ogg
+7.11.0.0.0-star-2.ogg
+7.11.0.0.0-star-3.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
new file mode 100644
index 0000000000..7ea8a7fe3e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.11.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
new file mode 100644
index 0000000000..65dc14045a
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.2.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
new file mode 100644
index 0000000000..d009f03745
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.2.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
new file mode 100644
index 0000000000..88d216c122
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.3.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
new file mode 100644
index 0000000000..ec71da1483
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.3.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
new file mode 100644
index 0000000000..5ab8d891ca
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.4.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
new file mode 100644
index 0000000000..909cf56536
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.4.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
new file mode 100644
index 0000000000..db3199ecb2
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.5.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
new file mode 100644
index 0000000000..501e4d6f3e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.5.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
new file mode 100644
index 0000000000..2b73a9329d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.6.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
new file mode 100644
index 0000000000..c6d001f03d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.6.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
new file mode 100644
index 0000000000..ad44439ec3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.7.0.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
new file mode 100644
index 0000000000..89ec80a5d8
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.7.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
new file mode 100644
index 0000000000..395c63c519
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.m3u
@@ -0,0 +1,10 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.0.0.0.ogg
+7.8.1.0.0.ogg
+7.8.2.0.0.ogg
+7.8.3.0.0.ogg
+7.8.4.0.0.ogg
+7.8.5.0.0.ogg
+7.8.6.0.0.ogg
+7.8.7.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
new file mode 100644
index 0000000000..804b7f66b6
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u
new file mode 100644
index 0000000000..7e19147683
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg
new file mode 100644
index 0000000000..9dc083b378
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u
new file mode 100644
index 0000000000..e3b31c66bb
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg
new file mode 100644
index 0000000000..706084cd9b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u
new file mode 100644
index 0000000000..a88f6b83c0
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.3.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg
new file mode 100644
index 0000000000..8f43efb225
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.3.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u
new file mode 100644
index 0000000000..35f43920c7
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.4.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg
new file mode 100644
index 0000000000..56c68fb418
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.4.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u
new file mode 100644
index 0000000000..a47d61bdd1
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.5.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg
new file mode 100644
index 0000000000..2646e35743
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.5.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u
new file mode 100644
index 0000000000..fe1f3bdb65
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.6.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg
new file mode 100644
index 0000000000..9a986e2e06
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.6.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.m3u
new file mode 100644
index 0000000000..ab997c5f15
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.8.7.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.ogg
new file mode 100644
index 0000000000..5e1204c858
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.8.7.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
new file mode 100644
index 0000000000..92e3c5d6e3
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.m3u
@@ -0,0 +1,5 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.9.0.0.0.ogg
+7.9.1.0.0.ogg
+7.9.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
new file mode 100644
index 0000000000..9650ec9582
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.0.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
new file mode 100644
index 0000000000..5e2efd9c5f
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.9.1.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
new file mode 100644
index 0000000000..527ae5ae02
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.1.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
new file mode 100644
index 0000000000..9f4c5730bb
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.m3u
@@ -0,0 +1,3 @@
+#EXTM3U
+#EXTINF: section playlist generated with SpeLbox
+7.9.2.0.0.ogg \ No newline at end of file
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
new file mode 100644
index 0000000000..c1d1c8ac56
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/7.9.2.0.0.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/author.ogg b/macros/latex/contrib/spelatex/spelatex-spel/author.ogg
new file mode 100644
index 0000000000..10bf7e2413
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/author.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/date.ogg b/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
new file mode 100644
index 0000000000..2a766f8654
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/date.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg b/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
new file mode 100644
index 0000000000..33da761ca9
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/footnote-1.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg b/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
new file mode 100644
index 0000000000..1b1c68a106
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/footnote-2.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex-spel/title.ogg b/macros/latex/contrib/spelatex/spelatex-spel/title.ogg
new file mode 100644
index 0000000000..0564c4228d
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex-spel/title.ogg
Binary files differ
diff --git a/macros/latex/contrib/spelatex/spelatex.dtx b/macros/latex/contrib/spelatex/spelatex.dtx
new file mode 100644
index 0000000000..b906fd628b
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex.dtx
@@ -0,0 +1,2238 @@
+% \iffalse meta-comment
+%
+%
+% Copyright (C) 2024 by Walter Daems <walter.daems@uantwerpen.be>
+% and Paul Levrie
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version
+% 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Walter Daems.
+%
+% This work consists of the files spelatex.dtx, spelatex.ins,
+% and any derivative file, generated from the dtx file using
+% the ins driver file.
+%
+% \fi
+%
+% \iffalse
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{spelatex}
+%</package>
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{spelatex.dtx}
+%</driver>
+%<*package>
+ [2024/06/12 v0.9 SpeLaTeX - Speech-enabled LaTeX (DMW and LVP)]
+%</package>
+\def\fileversion{0.9}
+\def\filedate{2024/06/12}
+%<*driver>
+\documentclass[10pt]{ltxdoc}
+\usepackage{makeidx}
+\usepackage{alltt}
+\usepackage[english]{babel}
+\usepackage[extramath]{spelatex}
+\usepackage{amsmath}
+\usepackage{graphicx}
+\usepackage{tikz}
+\IfFileExists{tocbibind.sty}{\usepackage{tocbibind}}{}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\StopEventually{\PrintChanges\PrintIndex}
+\spelmacad{DescribeEnv}[1]{#1}
+\spelmacad{DescribeMacro}[1]{#1}
+\begin{document}
+ \DocInput{spelatex.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v0.9}{2024/06/12}{. Birth}
+%
+% \GetFileInfo{spelatex.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+% \setlength{\parindent}{0em}
+% \addtolength{\parskip}{0.5\baselineskip}
+%
+% \title{\sf \spelatex{} --- Speech-enabled \LaTeX{}}
+% \author{Walter Daems (\texttt{walter.daems@uantwerpen.be})
+% and Paul Levrie}
+% \date{\fileversion --- \filedate}
+%
+% \newrobustcmd\GNU{GNU}
+% \spelmacad{GNU}{gnew}
+% \newrobustcmd\TexLive{Tex Live}
+% \spelmacad{TexLive}{tech-laaiv}
+% \newrobustcmd\MikTeX{MikTeX}
+% \spelmacad{MikTeX}{miktech}
+% \newrobustcmd\CTAN{CTAN}
+% \spelmacad{CTAN}{see-tan}
+% \newrobustcmd\CPAN{CPAN}
+% \spelmacad{CPAN}{see-pan}
+% \newrobustcmd\POD{POD}
+% \spelmacad{POD}{pod}
+% \newrobustcmd\spelwizardmodule{\texttt{SpeL::Wizard}}
+% \spelmacad{spelwizardmodule}{spel double colon wizard}
+%
+% \maketitle
+% \fvset{gobble=2}
+%
+% \section{Preface}
+%
+% \begin{spelchunk}
+% At our institute, the University of Antwerp in Belgium, the number
+% of students with reading and/or writing disorders (or at least
+% aware of these disorders) is increasing. Approximately 5\% of the
+% students are registered with such a disorder. Probably there's an
+% additional number of people opting not to register their disorder.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% A large portion of the study materials we offer to students is
+% still written material. The authors believe that this will keep on
+% being so, even given the multimedia and AI options that have
+% become mainstream. Let's not go into this debate for now.\\
+% However, written course texts cannot be but suboptimal for
+% students with reading disorders.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% For small texts, reading them out loud and recording them using a
+% voice recorder to create an aid for our target group, is still
+% feasible. We have taken that route at our institute for exam
+% assignments. However, for bigger texts (like course syllabi) this
+% is beyond the time a teacher can afford spending on this small a
+% group of students. Yes, economic laws also govern teaching!
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Therefore, reverting to readily available text-to-speech software
+% os an obvious choice. Nowadays, special software exists that
+% provides the functionality of reading out loud the contents of
+% electronic documents. For nontechnical subjects,
+% this works fine. However, when it comes to technical course
+% syllabi that are loaded with non-trivial mathematics, the standard
+% text-to-speech packages fail to meet our expectations. In
+% addition, they cannot read a sensible textual description of
+% figures or tables.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% \LaTeX{} is one of the better choices when it comes to typesetting
+% technical subjects, so why not extend \LaTeX{} to provide
+% mathematics-capable text-to-speech facilities? Our \spelatex{}
+% prototype does exactly that. Admittedly, using it causes a
+% significant overhead in writing your text. Therefore we also
+% provide you the \spelbox{} extension for the Org-mode
+% \cite{ORGMODE} of \GNU{} Emacs \cite{EMACS}. To satisfy your
+% curiosity: \spelbox{} stands for ``Speech-Enabled \LaTeX{} By
+% Org-mode eXport''.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Will AI take over the role of this package in the future?
+% Undoubtedly so. But for the time being, and also to avoid wasting
+% the enormous amount of energy AI costs us, we hope that you enjoy
+% using our software, or that --- if you are not pleased with it ---
+% it triggers you to give us feedback or to come up with a better
+% solution.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% You are free to use our software but kindly ask you to provide a
+% mention ``The audio materials of this text have been prepared with
+% \spelatex{}/\spelbox{}'' in the section treating copyrights,
+% bibliographic data or any other spot that is suited. I'd also
+% welcome a short mail of yours telling that you make use of the
+% package. The pleasure of receiving such an e-mail makes my day.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% You are free to modify this \LaTeX-package, keeping a reference to
+% our original package intact, provided that your package is subject
+% to the LPPL license, as is \spelatex{}. However, contributing to our
+% package might be a better way to go, in order to bundle the efforts
+% for a better speech-enabled \LaTeX{}.
+% \end{spelchunk}
+%
+% \section{Introduction}
+%
+% \subsection{Target audience}
+% \begin{spelchunk}
+% \spelatex{} is primarily intended for persons with a reading
+% disorder. This may be:
+% \end{spelchunk}
+% \begin{itemize}
+% \spelitem{persons suffering dyslexia}
+% \spelitem{visually impaired persons}
+% \begin{itemize}
+% \spelitem{persons who still can recognize the basic
+% parts of a book,
+% i.e. are able to operate a PDF viewer and click on the
+% individual parts.}
+% \spelitem{persons who can't recognize the basic parts of a book
+% (e.g., blind persons): they can listen to the automatic
+% playback of the ordered chain of audio fragments.}
+% \end{itemize}
+% \end{itemize}
+%
+% \begin{spelchunk}
+% But also people who want to multitask, e.g., gardening while
+% listening to a technical book, can benefit from
+% \spelatex{}.\footnote{Note that multitasking is not reserved for persons
+% without visual impairment. Also visually impaired persons can
+% benefit from listening to an audiobook while doing other
+% things.} Personally, I often use \spelatex{} to proofread texts as I
+% hear language errors more easily than I spot them while reading.
+% \end{spelchunk}
+%
+% \subsection{The magic under the hood}
+%
+% \subsubsection{The \spelbox{}-ecosystem}
+%
+% \begin{spelchunk}
+% The \spelatex{}-package is one of the parts of the \spelbox{}
+% ecosystem. It consists of three components:
+% \end{spelchunk}
+% \begin{itemize}
+% \spelitem{An Org-mode exporter called \texttt{ox-spelatex} \cite{OXSPELATEX}}
+% \spelitem{This \LaTeX{}-package \spelatex{} \cite{SPEL}}
+% \spelitem{A script embeded in the Perl module \spelwizardmodule~\cite{SPELWIZARD}}
+% \end{itemize}
+%
+% \subsubsection{The overall picture}
+%
+% \begin{spelchunk}
+% \spelatex{} equips the PDF that is generated by \LaTeX{}
+% with hyperlinks to audio files that contain the spoken
+% equivalent of the original text, equations, figures and tables
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Let's look at this in detail in Fig.~\ref{fig:setup}.
+% For now, ignore the two top boxes, and let's assume you are
+% composing the file |text.tex| as your document. We will return
+% to the two top boxes later.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% By loading the |spelatex.sty| package in your source
+% document, \LaTeX{} will produce a PDF file that references audio
+% files that will be generated later (see below). In
+% addition, it generates text chunks (i.e. small portions of
+% your text) in separate files (|.tex|) and a spel index file
+% (|.spelidx|) referencing them in sequence.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Together with the |.aux|-file (needed by \spelatex{} for labels and
+% citations), these are the inputs to the \spelatex-engine (|spel-wizard.pl|)
+% that parses the text chunks, writes a full text version of them as
+% spel files (with extension |.spel|) and
+% controls the text-to-speech engine to generate audio files of
+% them.\footnote{In the figure, Ogg Vorbis has been chosen as
+% format, but this can be any audio format.}
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% To avoid excessive text to speech conversion (i.e. an expensive step)
+% the \spelatex{} engine derives a finger print of them and compares it
+% to previously generated fingerprints for the chunk. If the
+% finger print has changed, the audio file is overwritten (or
+% created the first time), otherwise it is left untouched.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% As a cherry on top, the \spelatex-engine also creates a playlist,
+% such that you may use the audio files for a \POD{}cast-like
+% listening experience.\\
+% Something that has not been indicated on the figure, is that for
+% reading out loud entire (sub)sections, the PDF-file also references
+% m3u playlists that gather all chunks belonging to the (sub)section.
+% \end{spelchunk}
+%
+% \begin{figure}[p]
+% \begin{spelchunk}
+% \begin{center}
+% \begin{tikzpicture}
+% [scale=0.8,>=latex,
+% doc/.style={rectangle,fill=black!10,align=center,minimum
+% width=2cm,minimum height=2cm},
+% tool/.style={rectangle,draw,align=center}]
+% \node [doc] (utext) at (0,9) {text.org\\\footnotesize(unprepped
+% source)};
+% \node [tool] (instrument) at (0,6) {Org-mode exporter\\\footnotesize(\texttt{ox-spelatex})};
+% \node [doc] (text) at (0,3) {text.tex\\\footnotesize(prepped source)};
+% \draw[->] (utext) -- (instrument);
+% \draw[->] (instrument) -- (text);
+% \node [doc] (R) at (-3,0) {spelatex.sty\\\footnotesize(package)};
+% \node [tool] (latex) at (0,0) {\LaTeX\\\footnotesize(compiler)};
+% \node [doc] (pdf) at (0,-3) {text.pdf\\\footnotesize(PDF with\\\footnotesize hyperlinks)};
+% \node [doc] (spelidx) at (6,-3) {text.spelidx\\\footnotesize(index file)};
+% \node [doc] (aux) at (9,-3) {text.aux\\\footnotesize(auxiliary file)};
+% \node [doc] (files) at (3,-3) {*.tex\\\footnotesize(text chunks)};
+% \draw[->] (text) -- (latex);
+% \draw[->,dotted] (text) -- (R);
+% \draw[->,dotted] (spelidx) -- (files);
+% \draw[->] (R) -- (latex);
+% \draw[->] (latex) -- (pdf);
+% \draw[->] (latex) edge[out=0,in=90] (spelidx);
+% \draw[->] (latex) edge[out=10,in=90] (aux);
+% \draw[->] (latex) edge[out=-10,in=90] (files);
+% \node [tool] (engine) at (6,-6) {\spelpl{}\\
+% \footnotesize(\spelwizardmodule{} engine)};
+% \node [tool] (t2s) at (1.5,-6) {text-to-speech\\engine};
+% \draw[->] (files) -- (engine);
+% \draw[->] (spelidx) -- (engine);
+% \draw[->] (aux) -- (engine);
+% \node[doc] (ogg) at (0,-9) {*.ogg\\\footnotesize(audio files)};
+% \node[doc] (spel) at (3,-9) {*.spel\\\footnotesize(spel files)};
+% \node[doc] (m3u) at (6,-9) {text.m3u\\\footnotesize(playlist)};
+% \node[doc] (md5) at (9,-9) {*.md5\\\footnotesize(fingerprints)};
+% \draw[->] (engine) -- (spel);
+% \draw[->] (engine) -- (m3u);
+% \draw[<->] (engine) -- (md5);
+% \draw[->,dotted] (pdf) edge[out=-115,in=115] (ogg);
+% \draw[->,dotted] (m3u) edge[out=-125,in=-55] (ogg);
+% \draw[->,dashed] (engine) -- (t2s);
+% \draw[->] (spel) -- (t2s);
+% \draw[->] (t2s) -- (ogg);
+% \end{tikzpicture}
+% \end{center}
+% \end{spelchunk}
+% \begin{spelchunkad}
+% The easiest flow is to start from the top box, which represents
+% an org file that describes your text. We call this the
+% unprepped source. Read the Orgmode
+% documentation on \LaTeX{} and \spelatex{}-exporting to get to know
+% the format. The Orgmode \spelatex{} exporter, creates a fully
+% equipped \LaTeX{} file of your text. We call this the prepped source. You can
+% also start by composing this file yourself.
+% If your prepped source file uses the \spelatex{} style file, then
+% your compiler will generate a PDF file with hyperlinks, a
+% dot aawks-file and a dot spellindex-file together with a directory full of
+% dot tech files containing the text chunks to be processed by
+% \spelpl. This is a perl script that converts the chunks into
+% plain text readable spel files. The script is called spel dash
+% wizard dot pl. It also creates a playlist and audio files using a
+% text-to-speech engine. In this case, these are
+% Ogg-Vorbis files. To avoid having to call the text-to-speech
+% engine too frequently (which may incur costs), MD5-fingerprints
+% are used such that chunks that have been generated before and
+% are unchanged, can be reused. The end result is a PDF file that
+% references the audio files.
+% \end{spelchunkad}
+% \caption{Basic tool setup of \spelbox{} of which the \spelatex{} package
+% is an integral part; filled boxes indicate files,
+% outlined boxes indicate tools; solid lines indicates use or
+% creation of files, dotted lines indicate references, dashed lines
+% indicate a control relationship.}
+% \label{fig:setup}
+% \end{figure}
+%
+% \subsubsection{Implicit spelchunks}
+% \spelmacad{usepackage}[1]{the usepackage #1 macro}
+% \spelmacad{title}{the title macro}
+% \spelmacad{author}{the author macro}
+% \spelmacad{section}{the section macro}
+% \spelmacad{caption}{the caption macro}
+% \spelmacad{footnote}{the footnote macro}
+% \spelmacad{thanks}{the thanks macro}
+% \spelmacad{item}{the item macro}
+% \spelmacad{spelitem}{the spelitem macro}
+% \begin{spelchunk}
+% Generating the text chunks to be read out loud requires us to use
+% special \LaTeX-macros. For all pieces of text that are within
+% an existing macro (e.g. |\title|, |\author|, |\section|,
+% |\caption|, |\footnote|, |\thanks|), these macros have been
+% redefined by the \spelatex{}-package to
+% execute the magic without any further hassle.\\
+% We call these \LaTeX-fragments \emph{implicit spelchunks}.%
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% However, not all \LaTeX-constructs can be dealt with in an
+% automatic way. This is true for any |\item| you put inside a list.
+% You need to replace that with a |\spelitem| that takes the text
+% that follows as a first explicit argument, i.e. |\item blabla|
+% should be replaced by |\spelitem{blabla}|.
+% We call these \LaTeX-fragments \emph{defunct implicit
+% spelchunks}. They should have been implicit, but I could not get
+% that to work without problems. Therefore you need to mark them
+% explicitly as |\spelitem| constructs.
+% \end{spelchunk}
+%
+% \subsubsection{Explicit spelchunks}
+% \begin{spelchunk}
+% One would hope that displaymath environments are also implicit
+% spelchunks. However, overriding environments in \LaTeX{} is a tricky
+% business. In view of this, the \spelatex{} package keeps away from
+% this, and I've chosen to treat displaymath environments (like
+% |equation|, |eqnarray|, |gather|, |align|, |alignat|) the same way
+% as tables or figures, i.e. you need to embed the in a |spelchunk|
+% environment. The only difference between math environments and
+% figures an tables is that displaymath environments can be
+% automatically read out loud by the \spelpl{} script, while you
+% will have to provide a text description for tables and figures
+% manually, using a subsequence |spelchunkad|
+% environment (the suffix ad stands for \emph{audio description}).
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% To keep the terminology clear, we label them as automatic
+% and manual spelchunks respectively:
+% \end{spelchunk}
+% \begin{itemize}
+% \spelitem{automatic: \texttt{equation}, \texttt{eqnarray},
+% \texttt{gather}, \texttt{align}, \texttt{alignat}, \ldots}
+% \spelitem{manual: \texttt{figure}, \texttt{table},
+% \texttt{tikzpicture}, \ldots}
+% \end{itemize}
+%
+% \begin{spelchunk}
+% The similarity between both categories is that you both embed them
+% in a |spelchunk| environment, but that you provide the manual
+% textual description using a |spelchunkad| environment right after
+% the chunk: in this way, the |spelchunkad| environment provides an
+% alternative text for the chunk. Note that this way of working also
+% enables you to provide an overriding text for an equation, if you
+% think that \spelpl{} is doing a bad job. You do me a favor if
+% you submit this subpar behavior as a bug report to me!
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% It is worthwile to make good descriptions for a figure or a
+% table. It's here that you can create true added value to your
+% manuscript, even for readers without impairment!
+% \end{spelchunk}
+%
+% \subsubsection{Paragraphs}
+% \begin{spelchunk}
+% However, there is the elephant in the room that we did not yet
+% talk about, the paragraph. Indeed, it is desirable to split plain
+% text according to the paragraphs in the document. Alas, paragraphs
+% are one of the silent features that are
+% not easily accessible from within a \LaTeX-package.
+% Therefore paragraphs (or smaller text chunks) are considered to be
+% explicit spelchunks and need to be embedded
+% in |spelchunk| environments. This environment will cause its
+% contents to be hyperlinked to a separate piece of audio.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Encasing all your paragraphs with |spelchunk| environments
+% manually is a pain. There is a reason why in \LaTeX{}
+% paragraphs can be created by a double newline: convenience.
+% The |spelchunk|-environment encasing ruins this totally!
+% \end{spelchunk}
+%
+% \subsubsection{Emacs Orgmode to the rescue!}
+% \begin{spelchunk}
+% However, we provide an exporter for the Org-mode \cite{ORGMODE} of
+% Emacs \cite{EMACS}, such
+% that you can prepare your manuscript in Org-mode and not worry
+% about all these exlicit tricks with |spelchunk| and |spelitem|
+% constructs.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% This brings us to the two top boxes in the diagram of
+% Fig.~\ref{fig:setup}. If you prepare your manuscript in Org-mode,
+% and use the Org-mode exporter, you don't have to worry about explicit
+% spelchunks, or defunct implicit spelchunks. Therefore, I encourage
+% you to use Emacs as your editor. The learning
+% curve is steep, but the rewards regarding ease-of-use are huge.
+% In that way, you can focus on providing textual descriptions for
+% the non textual portions of your manuscript, e.g. giving a good
+% description of a graph.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Note that this very document has been prepared manually to make it
+% independent of Org-mode. It also shows that if you don't
+% want to use Emacs and Org-mode, you will suffer some considerable
+% pain in equipping your manuscript with an overload of |spelchunk|
+% environments. I have only one advice: don't use the \spelatex{}
+% outside \spelbox{}. Outside a proper boxed confinement,
+% spells easily become curses\ldots
+% \end{spelchunk}
+%
+% \subsection{Extra math commands}
+%
+% \begin{spelchunk}
+% Some of the ways to specify mathematical expressions in \LaTeX{} is
+% very liberal, what makes converting them to text quite
+% difficult. Therefore, we also provide some
+% extra constructs that make life easier for both parties: you as a
+% user and \spelpl{} as a parser.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% An example of this are sets. We provide two commands to define a
+% set. As we want these commands to blend in with general \LaTeX{},
+% we did not equip them with a prefix |spel|. Therefore, we made
+% activating them conditional to specifying the package option
+% |extramath|.
+% \end{spelchunk}
+% \begin{description}
+% \spelitem[\texttt{\textbackslash{}setenum}]{a command to define a set
+% that consists of comma or semicolon separated elements}
+% \spelitem[\texttt{\textbackslash{}setdesc}]{a command to define a
+% set that is specified using a description}
+% \end{description}
+%
+%
+% \subsection{Added value}
+%
+% \begin{spelchunk}
+% Why would it make sense to use \spelatex? I think there are many
+% selling points. I can mention a few:
+% \end{spelchunk}
+% \begin{description}
+% \spelitem[Minimal overhead]{
+% Preparing a \LaTeX{} manuscript for use with \spelatex{} requires a
+% minimal amount of work, if you are using Org-mode in Emacs.}
+% \spelitem[Free for the content provider]{
+% If you are using a freeware text-to-speech engine (like for
+% example festival \cite{FESTIVAL} or balabolka \cite{BALABOLKA})
+% and a royalty-free audio format and player (like for example
+% ogg-vorbis), generating audio-enabled documents only requires
+% the effort of preparing your manuscript. There are no license
+% costs involved.\\
+% You could also consider to use an online paying text-to-speech
+% service. As an example, I incorporated a connection to Amazon's
+% Polly \cite{AWSPOLLY}.\\
+% In addition, if your user has a better-quality (maybe
+% commercial) text-to-speech system, he/she can reconvert the text
+% files him-/herself, equiping your document with a voice they
+% like and are used to, without you having to worry about license
+% costs. They might even use an AI-generated copy of their own
+% voice!}
+% \spelitem[Free for your audience]{
+% In addition, the user of your audio-enabled document doesn't
+% need to buy a license for text-to-speech software. Only a PDF-viewer
+% and standard audio-player program are required.}
+% \spelitem[Math capable]{
+% Try some of the equations in this manuscript. We are quite
+% confident you'll be convinced fairly soon.}
+% \end{description}
+%
+% \section{Installation}
+%
+% \subsection{The \spelatex{} package}
+
+% \begin{spelchunk}
+% Most \LaTeX{} distributions use \CTAN{} as their main package source
+% and therefore will include \spelatex.
+% \end{spelchunk}
+%
+% %\begin{spelchunk}
+% If this is not the case, contact me. I'll be glad to provide you
+% with TDS file that you can unpack in your local TDS tree.
+% \end{spelchunk}
+%
+% \subsection{The \spelpl{} speech generator}
+%
+% \subsubsection{The script}
+% \begin{spelchunk}
+% You can install the wizard assuming you have a working Perl
+% interpreter installed. Assuming you're on \GNU/Linux or MAC, you
+% should be able to find an installation package using the package
+% manager for your distribution. If you are on MS-Windows, look for
+% Strawberry perl or ActiveState perl.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% The only thing to do is to install the
+% \spelwizardmodule~module. You can do this with the perl pacakge
+% manager for your interpreter.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Open a terminal or command window, and then enter on the
+% command line (the dollar represents your prompt):
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% On \GNU/Linux and MAC: |$ cpanm SpeL::Wizard|\\
+% When using Strawberry perl: |$ cpan SpeL::Wizard|\\
+% When using ActiveState perl: |$ ppm install SpeL-Wizard|
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% The script \spelpl{} will be installed on your system. Make sure
+% it is on your search path.
+% \end{spelchunk}
+%
+% \subsubsection{The configuration file}
+% \begin{spelchunk}
+% Finally, you need to provide \spelpl{} with an appropriate
+% config-file that sets up the text-to-speech conversion.
+% Below you can find a setup for Festival \cite{FESTIVAL}:
+% \begin{Verbatim}
+% [engine]
+% tts=festival
+%
+% [languagetags]
+% dutch=nl
+% english=en-gb
+%
+% [voices]
+% dutch=nl1_mbrola
+% english=en1_mbrola
+% \end{Verbatim}
+% \end{spelchunk}
+% \begin{spelchunk}
+% The tts configuration parameter defines the speech engine to use.
+% The languagetags section defines how the babel languages are mapped to
+% internationalization codes (also known as locales).
+% The voices section specifies what voice to use for a specific language.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% An environment variable can specify where your config file is
+% located, e.g., on \GNU/Linux:
+% \begin{Verbatim}
+% $ export SPELWIZARD_CONFIG=/home/wdaems/.config/tts.conf
+% \end{Verbatim}
+% \end{spelchunk}
+% \begin{spelchunk}
+% Be aware that you need to install your text-to-speech tool yourself
+% according to the documentation provided by the tool provider. In
+% case you are using an online text-to-speech service provider you
+% will need to get an account on their cloud platform and setup
+% credentials and whatever is needed to get going. Providing
+% assistance for this is beyond the aim of this manual.%
+% \end{spelchunk}
+%
+% \subsection{The PDF viewer}
+%
+% \begin{spelchunk}
+% You need to make sure you have a PDF-viewer that supports links
+% containing 'run:' tags. E.g., xpdf does not \cite{XPDF}, evince
+% complains about security risks \cite{EVINCE}, but okular
+% \cite{OKULAR} and Adobe Reader \cite{ADOBEREADER} do. So does
+% PDF-XChange Viewer \cite{PDFXCHANGE}.
+% \end{spelchunk}
+%
+% \subsection{The media player}
+
+% \begin{spelchunk}
+% When clicking a \spelatex-enabled item in your PDF-file, your media
+% player is started to play the |.ogg| or |.m3u|-file. On \GNU/Linux
+% most media players work fine (SoX, totem, vlc, \ldots).\\
+% On windows, I'd recommend using vlc. It works out of the box.
+% When usign the stock Windows Media Player, you will need to add
+% every folder that contains a PDF you'd like to have read, to your
+% Media Player library. Search the internet to find instructions on
+% that and be prepared: in line with Microsoft standard practice it
+% is well hidden in the interface.
+% \end{spelchunk}
+%
+% \section{Usage}
+%
+% \subsection{Preparing your document source}
+% \begin{spelchunk}
+% Using the \spelatex{} package is very simple. Just load the package's
+% style file using an appropriate |\usepackage{spel}|.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% In case you are not using Org-mode, there are $5$ things to do:
+% \end{spelchunk}
+% \begin{enumerate}
+% \spelitem{Treat the defunct implicit spelchunks}
+% \spelitem{Treat the explicit spelchunks}
+% \spelitem{Manually provide text to read when needed}
+% \spelitem{Provide audiodescriptions or preprocessing instructions
+% for your typesetting macros}
+% \spelitem{Provide audiodescriptions or preprocessing instructions
+% for your typesetting environments}
+% \end{enumerate}
+%
+% \begin{spelchunk}
+% Steps 1 and 2 can be done automatically for you by using Org-mode in
+% Emacs and using the proper |spel| exporter.
+% Steps 3, 4 and 5 are up to you. In this section, we assume you are
+% executing all 5 steps manually and therefore, we will explain all
+% required macros.
+% \end{spelchunk}
+%
+% \subsubsection{Treating the implicit spelchunks}
+% \begin{spelchunk}
+% The texts of chapter, (sub)section titles, a.s.o. will be formatted
+% automatically such that they are hyperlinked to the appropriate
+% audio file. Therefore, this step was not mentioned above. It is done
+% automatically for you by using the \spelatex{} package.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% You only need to cover your \emph{defunct implicit spelchunks}:\\
+% \DescribeMacro{\spelitem}
+% Use this macro instead of the \texttt{\textbackslash{}item} macro to make
+% sure your list environments are converted to speech chunks
+% appropriately.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Example:
+% \begin{Verbatim}
+% I like
+% \begin{itemize}
+% \spelitem{apples,}
+% \spelitem{pears, and}
+% \spelitem{oranges.}
+% \end{itemize}
+% \end{Verbatim}
+% \end{spelchunk}
+% \begin{spelchunk}
+% Another example:
+% \begin{Verbatim}
+% If you don't know these fruits:
+% \begin{description}
+% \spelitem[apple]{a green round fruit}
+% \spelitem[pears]{a green pointy-shaped fruit}
+% \spelitem[orange]{an orange round fruit}
+% \end{description}
+% \end{Verbatim}
+% Note that the spel exporter in Org-mode takes care of all this
+% boilerplate work.
+% \end{spelchunk}
+%
+% \subsubsection{Treating the explicit spelchunks}
+%
+% \begin{spelchunk}
+% \DescribeEnv{spelchunk}
+% Use this environment to embed the chunks of text in that you want
+% to generate audio for.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Example:\\
+% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
+% generates internal package problems)}
+% \end{spelchunk}
+% \begin{Verbatim}
+% \begin{spelchunk}
+% An orderinary paragraph must be embedded in this environment.
+% The same holds for equations!
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% \begin{align}
+% E &= m c^2\\
+% e^{j\pi} &= -1
+% \end{align}
+% \end{spelchunk}
+% \end{Verbatim}
+%
+%
+% \subsubsection{Manually providing text to read when needed}
+% \begin{spelchunk}
+% \DescribeEnv{spelchunkad}
+% If you want a different text to be used for the previous
+% spelchunk environment, this environment allows you to specify it.
+% For plain text or math environments, this is also your generic escape
+% route in case the \spelpl{} parser does not work as you'd like
+% it to.\\
+% \end{spelchunk}
+% \begin{spelchunk}
+% Just have your |spelchunk| environment followed by a
+% |spelchunkad| environment that specifies the correct text to read
+% out loud. However, please, file a bug report, such that we can
+% improve the tool.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Example:\\
+% {\footnotesize (note: the example below is not \spelatex{}-enabled because it also
+% generates internal package problems)}
+% \end{spelchunk}
+% \begin{Verbatim}
+% \begin{spelchunk}
+% An orderinary paragraph must be embedded in this environment.
+% \end{spelchunk}
+% \begin{spelchunkad}
+% Do not forget to embed ordinary paragraphs in this environment.
+% \end{spelchunkad}
+% \end{Verbatim}
+%
+% \begin{spelchunk}
+% For non-textual material such as figures or tables, this allows you
+% to specify a sensible text that acts as an audio description for
+% that material.\\
+% Just have your |spelchunk| environment that surrounds your figure
+% or table, followed by a |spelchunkad| environment that provides
+% the audio description for the non-textual material.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Example:\\
+% {\footnotesize (note: the example below is not \spelatex{}-enabled because it
+% generates internal package problems also)}
+% \end{spelchunk}
+% \begin{Verbatim}
+% \begin{spelchunk}
+% \includegraphics{engine.jpg}
+% \end{spelchunk}
+% \begin{spelchunkad}
+% The image shows a turbo-fan engine of an aircraft. One can
+% clearly see the silver blades of the fan, and the housing. Note
+% how little spacing there is between the blades and the housing.
+% \end{spelchunkad}
+% \end{Verbatim}
+%
+% \subsubsection{Provide descriptions for typesetting macros}
+%
+% \DescribeMacro{\spelmacad}
+% \begin{spelchunk}
+% Often, recurring constructs are being typeset using a dedicated
+% macro, defined by the user.
+% For example, to consistently typeset input voltages for arbitrary pins,
+% one might have defined the macro:
+% \begin{Verbatim}
+% \newcommand\vin[2][IN]{\ensuremath{v_{\mathit{#1},#2}}}
+% \end{Verbatim}
+% \end{spelchunk}
+% \newcommand\vin[2][IN]{\ensuremath{v_{\mathit{#1},#2}}}%
+% \spelmacad{vin}[2][IN]{the #1put voltage at pin #2}%
+% \begin{spelchunk}
+% This allows easy specification of
+% \begin{Verbatim}
+% \vin{1} = \sin 20 t
+% \end{Verbatim}
+% resulting in $\vin{1} = \sin 20 t$.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% However one might want this line to be read as 'the input voltage
+% at pin 1 equals sine 20 t'.\\
+% To this end, one can provide an description for this macro
+% using the |spelmacad| macro.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Example:
+% \begin{Verbatim}
+% \spelmacad{vin}[1][IN]{the #1put voltage at pin #2}
+% \end{Verbatim}
+% Note that the audio description in this case will only be
+% acceptable, for arguments IN and OUT. One clearly has to take the
+% audio description into account when defining \LaTeX{}-macros.
+% \end{spelchunk}
+%
+% \subsubsection{Descriptions for typesetting environments}
+%
+% \DescribeMacro{\spelenvad}
+% \begin{spelchunk}
+% Often, recurring constructs are being typeset using a dedicated
+% environment, defined by the user.
+% For example, to consistently typeset a proof or illustration one might
+% have defined the environment:
+% \begin{Verbatim}
+% \newenvironment{proof}[2][Proof]{
+% \textbf{#1: #2}\\
+% }
+% {
+% \hfill$\blacksquare$\\
+% }
+% \end{Verbatim}
+% \end{spelchunk}
+% \begin{spelchunk}
+% This allows easy specification of an illustration as:
+% \begin{Verbatim}
+% \begin{proof}[Illustration]{solving a quadratic equation}
+% blabla
+% \end{proof}
+% \end{Verbatim}
+% \end{spelchunk}
+% \begin{spelchunk}
+% However one might want this environment to be read as
+% 'Illustration of solving a quadratic equation: blabla. This
+% concludes this illustration.'\\
+% To this end, one can provide an description for this macro
+% using the |spelenvad| macro.
+% \end{spelchunk}
+%
+%
+% \begin{spelchunk}
+% Example:
+% \begin{Verbatim}
+% \spelenvad{proof}[1][Illustration]
+% {#1 of #2:}
+% {This concludes this #1.}
+% \end{Verbatim}
+% \end{spelchunk}
+%
+% \subsubsection{Using the i18n features of \spelpl when describing
+% your macros and environments}
+% \begin{spelchunk}
+% Sooner rather than later you will feel the need to provide reading
+% alternatives for your constructs that are language dependent. In
+% that case you can call the i18n features that are built into
+% \spelpl. We illustrate this with an example.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Assume you've made your own command to raise numbers to a power,
+% and you provide and description for your macro.
+% \end{spelchunk}
+% \begin{Verbatim}
+% \newcommand\numtopower[2]{#1^{#2}}
+% \spelmacad{numtopower}[2]{#1 to the power of #2}
+% \end{Verbatim}
+%
+% \begin{spelchunk}
+% The problem with this solution is, that it only works for one
+% language. The solution is to use an i18n expression in your
+% description:
+% \end{spelchunk}
+% \begin{Verbatim}
+% \spelmacad{numtopower}[2]{#1 @{i18n(Power,#2)}}
+% \end{Verbatim}
+% \begin{spelchunk}
+% This will call the maketext function (See Locale::Maketext) on
+% the Lexicon provided in SpeL::Wizard::I18n, as:
+% \end{spelchunk}
+% \begin{Verbatim}
+% $SpeL::Wizzard::I18n::lh->maketext( 'Power', "#2")
+% \end{Verbatim}
+% \begin{spelchunk}
+% to read your macro.
+% \end{spelchunk}
+%
+% \subsubsection{The extra math commands}
+% Note that these commands are only available if you provide the
+% package option |extramath|.
+%
+% \DescribeMacro{\setenum}
+% \begin{spelchunk}
+% This macro typesets an enumeration set and makes sure \spelpl{}
+% can read it properly.
+% \end{spelchunk}
+% \begin{Verbatim}
+% \begin{equation}
+% P = \setenum{ 2, 3, 5, 7, 11, 13, \ldots }
+% \end{equation}
+% \end{Verbatim}
+%
+% \DescribeMacro{\setdesc}
+% \begin{spelchunk}
+% This macro typesets a descriptive set and makes sure \spelpl{}
+% can read it properly.
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{Verbatim}
+% \begin{equation}
+% P = \setdesc{ n \in N \mid n \text{~is prime} }
+% \end{equation}
+% \end{Verbatim}
+% \end{spelchunk}
+%
+% \subsection{Going through the flow}
+% \begin{spelchunk}
+% Once your document source has been prepared, you are ready for the
+% regular \spelatex-flow. It consists of 3 steps.
+% \end{spelchunk}
+%
+% \begin{enumerate}
+% \spelitem{Create a \texttt{jobname-spel} subdirectory in the
+% working directory your \LaTeX{} source document is in (replace
+% jobname with the basename of your latex file, the final
+% \texttt{-spel} is a literal).}
+% \spelitem{Run your document
+% 3-times through your \{pdf,Xe,Lua\}\LaTeX{}-compiler to get all
+% the references right.}
+% \spelitem{Run the \spelpl{} speech
+% generator (see scripts directory or the wrapper provided by the
+% package manager), by launching it with the base name of your
+% document as command-line
+% argument.\\
+% E.g.: \texttt{\spelpl{} -v example}}\\
+% The |-v| argument causes the script to be somewhat more verbose.
+% \end{enumerate}
+%
+% \begin{spelchunk}
+% The result of this will be a PDF file equipped with links to audio
+% files in the 'speech' subdirectory. Alas your PDF file has been
+% become a little less portable, as it now requires the 'speech'
+% subdirectory to be complete. You might want to package the
+% ensemble into a tar-file or zip-archive.
+% \end{spelchunk}
+%
+%%
+% \section{Example}
+%
+% \begin{spelchunk}
+% Below, you can find a simple example to give you a head-start.
+% In order not to spoil the fun for you, the embedded version here
+% is not speech-enabled.
+% \end{spelchunk}
+%
+% \begin{VerbatimOut}[gobble=4]{Example/example.tex}
+% \documentclass{article}
+%
+% \usepackage[dutch,english]{babel} % load babel before spel to avoid
+% % option clash!
+% \selectlanguage{english}
+% \usepackage[format=ogg]{spelatex}
+%
+% \newrobustcmd\CTAN{CTAN}
+% \spelmacad{CTAN}{see-tan}
+% \newrobustcmd\CPAN{CPAN}
+% \spelmacad{CPAN}{see-pan}
+%
+% \title{\spelatex{} Example}
+% \author{Walter Daems and Paul Levrie}
+% \date{2011/04/12}
+% \setlength\parindent{0em}
+% \setlength\parskip{1ex}
+%
+% \begin{document}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% \begin{spelchunk}
+% This file is just a simple showcase of the features of \spelatex.
+% Below, you'll find examples of:
+% \end{spelchunk}
+%
+% \begin{itemize}
+% \spelitem{a simple equation}
+% \spelitem{a more complex equation}
+% \end{itemize}
+%
+% \section{A simple equation}
+% \label{eqn:simple}
+% \begin{spelchunk}
+% Consider the following simple definition of a polynomial function and
+% check its spoken version by clicking on it.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% \begin{equation}
+% f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+% \end{equation}
+% \end{spelchunk}
+% \begin{spelchunk}
+% This seems a simple equation, however, it is not so straightforward
+% for an automated reader, to read it correctly.
+% \end{spelchunk}
+%
+% \section{A more complex equation}
+% \newcommand\xx[2]{\ensuremath{#1_{#2}}}
+% \spelmacad{xx}[2]{#1 #2}
+%
+% \label{eqn:complex}
+% \begin{spelchunk}
+% For a lightray that hits the parabola at the point
+% $P(t,9-\frac{t^2}{4})$, the reflected ray has slope $\tan 2\alpha$.
+% Since the slope of the tangent to the parabola at $P$ is
+% equal to $\tan\alpha = -\frac{t}{2}$, the equation of the
+% reflected ray is given by
+% \end{spelchunk}
+% \begin{spelchunk}
+% \[
+% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
+% \]
+% \end{spelchunk}
+%
+% \selectlanguage{dutch}
+% \section{Een andere taal}
+% \begin{spelchunk}
+% \spelatex{} is ook volledig babel-actief, wat wil zeggen dat de
+% voorleesstem de geselecteerde taal zal volgen.
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% \[
+% y-9+\frac{t^2}{4} = -(x-t) \cdot \frac{4t}{4-t^2}
+% \]
+% \end{spelchunk}
+
+% \selectlanguage{english}
+% \section{And some extras}
+% \subsection{Citations}
+% \begin{spelchunk}
+% Two excellent repositories are \CPAN{} \cite{CPAN} and \CTAN{} \cite{CTAN}.
+% \end{spelchunk}
+%
+% \subsection{References to labels}
+% \begin{spelchunk}
+% Section~\ref{eqn:simple} contains an illustration of a simple
+% equation. For a more complex equation, we refer the user to
+% section~\ref{eqn:complex}.
+% \end{spelchunk}
+%
+% \bibliographystyle{alpha}
+%
+% \begin{thebibliography}{99}
+%
+% \bibitem{CTAN}
+% The Comprehensive \TeX{} Archive Network.
+% \newblock \url{http://www.ctan.org}.
+% \newblock online, accessed in August 2021.
+%
+% \bibitem{CPAN}
+% The Comprehensive Perl Archive Network.
+% \newblock \url{http://www.cpan.org}.
+% \newblock online, accessed in August 2021.
+%
+% \end{thebibliography}{99}
+%
+% \end{document}
+% \end{VerbatimOut}
+% \VerbatimInput[frame=lines,numbers=left,gobble=0]{Example/example.tex}
+%
+% \section{Demo}
+%
+% \newcommand\rd[1]{\ensuremath{\mathrm{d}#1}}
+% \spelmacad{rd}[1]{d of #1}
+% \newcommand\xx[2]{\ensuremath{#1_{#2}}}
+%
+% \begin{spelchunk}
+% The examples below have been composed and used to test the math
+% reading capabilities of \spelatex{} and \spelpl. The source code has not
+% been made visible in this document. If you'd like to see the
+% source code, check the original |.dtx|-file that was used to
+% generate this PDF-file.
+% \end{spelchunk}
+%
+% \subsection{Numbers}
+%
+% \begin{spelchunk}
+% \begin{align}
+% \pi\\
+% -31415\\
+% 1.25\\
+% -0.34 \times 10^{4}\\
+% 12 - j 3\\
+% -31415.23 + .45i
+% \end{align}
+% \end{spelchunk}
+%
+%
+% \subsection{Fractions}
+% \subsubsection{A fraction only containg numbers}
+% \begin{spelchunk}
+% \begin{align}
+% x &= - \frac{1}{2} \\
+% y &= - \sqrt{\frac{\pi}{2}}
+% \end{align}
+% \end{spelchunk}
+%
+% \subsubsection{A fraction with a little more under the hood}
+% \begin{spelchunk}
+% \begin{align}
+% u &= - \frac{x^2+35}{\sqrt{12}} \\
+% v &= - \frac{\sqrt{\frac{\pi}{2}}}{-3x^2+3}
+% \end{align}
+% \end{spelchunk}
+%
+%
+% \subsection{Simple expressions}
+% \subsubsection{A polynomial function}
+% \begin{spelchunk}
+% \begin{equation}
+% f(x) = x^{5}- x^4 + 7 x^3 + 3 x^2 - 8 x + 23
+% \end{equation}
+% \end{spelchunk}
+%
+% \subsubsection{Some more complex equations}
+% \begin{spelchunk}
+% Here's de Moivre's formula:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{equation}
+% \left(\cos x+j\sin x\right)^n=\cos(nx)+j\sin(nx)
+% \end{equation}
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Euler's relationship:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{equation}
+% e^{j \phi} = \cos \phi + j \sin \phi
+% \end{equation}
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Euler's identity:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{equation}
+% e^{j \pi} + 1 = 0
+% \end{equation}
+% \end{spelchunk}
+%
+% \subsubsection{A rather well-known definite integral}
+% \begin{spelchunk}
+% \begin{equation}
+% \int_{-\infty}^\infty e^{-x^2}\,\rd{x} = \sqrt{\pi}
+% \end{equation}
+% \end{spelchunk}
+%
+% \subsection{Sets}
+% \begin{spelchunk}
+% Let's check the two set commands this package provides:
+% \texttt{\textbackslash{}setenum} and
+% \texttt{\textbackslash{}setdesc}:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{align}
+% P &= \setenum{ 2, 3, 5, 7, 11, 13, \ldots }\\
+% P &= \setdesc{ n \in N \mid n \text{~is prime}}
+% \end{align}
+% \end{spelchunk}
+%
+% \subsection{Matrices}
+% \begin{spelchunk}
+% How about some linear algebra?
+% \begin{align}
+% \begin{bmatrix}
+% 3 & 4 \\
+% 7 & 2
+% \end{bmatrix}
+% \cdot
+% \begin{bmatrix}
+% x \\ y
+% \end{bmatrix}
+% &=
+% \begin{bmatrix}
+% 1 \\ 0
+% \end{bmatrix}\\
+% \begin{vmatrix}
+% 3 & 4 \\
+% 7 & 2
+% \end{vmatrix}
+% &= -22
+% \end{align}
+% \end{spelchunk}
+%
+% \subsection{Figures and Tables}
+% \subsubsection{Figures}
+% \begin{spelchunk}
+% The example Fig.~\ref{fig:blockdiagram} illustrates the voice-aid
+% that can be added to figures.
+% \end{spelchunk}
+% \begin{figure}[h]
+% \setlength{\unitlength}{4mm}
+% \begin{spelchunk}
+% \begin{center}
+% \begin{picture}(24,2)
+% \put(0,0.8){$x[n]$}
+% \put(2,1){\vector(1,0){3}}
+% \put(5,0){\framebox(5,2){$H(z)$}}
+% \put(10,1){\vector(1,0){3}}
+% \put(13,0){\framebox(5,2){$G(z) \ast F(z)$}}
+% \put(18,1){\vector(1,0){3}}
+% \put(22,0.8){$y[n]$}
+% \end{picture}
+% \end{center}
+% \end{spelchunk}
+% \begin{spelchunkad}
+% The discrete-time input signal x is fed through a filter H of
+% z. The intermediate output signal of the filter H of z is fed into
+% another filter whose transfer function is the convolution of G of
+% z and F of z. This resuspel in the discrete-time output signal y.
+% \end{spelchunkad}
+% \caption{A block diagram of the filter system}
+% \label{fig:blockdiagram}
+% \end{figure}
+%
+% \subsubsection{Tables}
+% \begin{spelchunk}
+% \begin{center}
+% \begin{tabular}{lcc}
+% Food & Sweet & Bitter \\
+% \hline
+% apple & $\bullet$ & \\
+% unsweetened coffee & & $\bullet$\\
+% cake & $\bullet$ & \\
+% chocolate & $\bullet$ & $\bullet$ \\
+% \hline
+% \end{tabular}
+% \end{center}
+% \end{spelchunk}
+% \begin{spelchunkad}
+% This table indicates the sweetness and bitterness for several food
+% products.
+% It lists apples that are (sweet); unsweetened coffee which is
+% bitter; cake which is sweet and chocolate that is both sweet and bitter.
+% \end{spelchunkad}
+% \subsection{A parabola tale}
+%
+% \begin{spelchunk}
+% For a lightray that hits the parabola at the point
+% $P(t,9-\frac{t^2}{4})$, the reflected ray has slope $\tan 2\alpha$.
+% Since the slope of the tangent to the parabola at $P$ is equal
+% to $\tan \alpha = -\frac{t}{2}$, the equation of the reflected
+% ray is given by
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{equation}
+% y-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
+% \end{equation}
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% The $x$-coordinate of the point of intersection of the reflected ray
+% with a fixed line $y=u$ satisfies:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \begin{equation}
+% u-9+\frac{t^2}{4} = -\frac{4t}{4-t^2} \cdot (x-t)
+% \label{eqn:refray}
+% \end{equation}
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% We calculate the minimal value of this $x$ for varying $t$, by
+% differentiating (\ref{eqn:refray}) with respect to $t$ and assuming
+% that $\frac{\rd{x}}{\rd{t}}=0$:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \[
+% \frac{t}{2} = -\frac{4(4+t^2)}{(4-t^2)^2} (x-t) -
+% \frac{4t}{4-t^2} \cdot (-1) \ \ \ \Leftrightarrow \ \ \ x=
+% 3\frac{t}{2}-\frac{t^3}{8}
+% \]
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% Inserting in the equation containing $u$ gives us the relation
+% between $t$ and $u$:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \[
+% u = 9- 3 \frac{t^2}{4}
+% \]
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% This leads to a system of parametric equations for the caustic:
+% \end{spelchunk}
+% \begin{spelchunk}
+% \[
+% \left\{\begin{array}{l}
+% x = 3\frac{t}{2}-\frac{t^3}{8} \\[0.3cm]
+% y = 9- 3 \frac{t^2}{4}
+% \end{array} \right.
+% \quad \Leftrightarrow \quad
+% \left\{\begin{array}{l}
+% x = \frac{t}{2} \cdot (3 -\frac{t^2}{4}) \\
+% y = 3(3- \frac{t^2}{4})
+% \end{array} \right.
+% \]
+% \end{spelchunk}
+%
+% \begin{spelchunk}
+% It is now easy to eliminate the parameter $t$. As you can see, $t
+% = \frac{6 x}{y}$. Inserting into the equation for $y$ gives us the
+% equation of Tschirnhausen's cubic.
+% \end{spelchunk}
+%
+%
+% \section{Implementation}
+% \begin{spelchunk}
+% To ease the implementation work and because raw \LaTeX{} code is
+% difficult to read on itself, I took the liberty of not providing
+% this section with speech chunks (except for this introduction
+% text).
+% \end{spelchunk}
+%
+% \iffalse
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% \fi
+%
+% \subsection{Design principles}
+%
+% \spelatex{} has been developed using the following main targets in
+% mind. Some of them are common sense design principles, some of them
+% are specific for this application.
+% \begin{itemize}
+% \item minimal effort in preparing a \LaTeX{} manuscript for use with
+% \spelatex{}
+% \item maximal compatibility with existing \LaTeX{} packages
+% \item no (or minimal) compromise mathematical reading capabilities
+% for mathematical constructs
+% \item user extensible audio preprocessor
+% \item minimal use of processing power for text to speech conversion
+% \end{itemize}
+%
+%
+% \subsection{Auxiliary Packages}
+% The \spelatex{} package uses some basic auxiliary packages to make life
+% easy.
+% \begin{macrocode}
+\RequirePackage{expl3}
+\RequirePackage{hyperref}
+\RequirePackage{xcolor}
+\RequirePackage{ifthen}
+\RequirePackage{fancyvrb}
+\RequirePackage{newfile}
+\RequirePackage{rotating}
+\RequirePackage{babel}
+\hypersetup{backref=true,
+ breaklinks=true,
+ colorlinks=true,
+ citecolor=black,
+ filecolor=black,
+ hyperindex=true,
+ linkcolor=black,
+ pageanchor=true,
+ pagebackref=true,
+ pagecolor=black,
+ pdfpagemode=UseOutlines,
+ bookmarksopen=true,
+ urlcolor=black}
+\RequirePackage{kvoptions}
+% \end{macrocode}
+%
+% \subsection{Options}
+%
+% \begin{macrocode}
+\SetupKeyvalOptions{
+ family=spel,
+ prefix=spel@
+}
+\DeclareStringOption[ogg]{format}
+\DeclareBoolOption[false]{disabled}
+\DeclareBoolOption[false]{extramath}
+\DeclareBoolOption[false]{propermath}
+\ProcessKeyvalOptions*
+% \end{macrocode}
+%
+% \subsection{Logos}
+% Vanity is everything, so let's make some logoware.
+% \begin{macro}{\spelatex}
+% This is the official \spelatex{} logo.
+% \begin{macrocode}
+\DeclareRobustCommand{\spelatex}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1ex\LaTeX}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\spelbox}
+% This is the official \spelbox{} logo.
+% \begin{macrocode}
+\DeclareRobustCommand{\spelbox}{S\kern-0.3ex\raisebox{-0.1ex}{\rotatebox{-15}{p}}\kern-0.25ex\raisebox{0.1ex}{\rotatebox{10}{e}}\kern-0.1exLbo\raisebox{-0.2ex}{x}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\spelpl}
+% This is the official \spelpl{} logo.
+% \begin{macrocode}
+\DeclareRobustCommand{\spelpl}{\texttt{spel-wizard.pl}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{The speech stream}
+% The basic structural elements of a document (title, chapters,
+% sections, \ldots) are written to the speech index stream. This is a
+% textfile that has the same base name as your \LaTeX{} job and has
+% extension |.spelidx|.
+%
+% It is the index to the chunks of text that are written to the speech
+% directory.
+%
+% The |.spelidx| file requires postprocessing by the \spelpl{}
+% script in order to obtain the required audio files.
+%
+% The speech stream needs to be open before the preamble's title,
+% author and date.
+% \begin{macrocode}
+\newoutputstream{chunk}
+\newoutputstream{spelidx}
+\openoutputfile{\jobname.spelidx}{spelidx}
+% \end{macrocode}
+% The stream needs to be closed upon termination of the document.
+% \begin{macrocode}
+\AtEndDocument{
+ \closeoutputstream{spelidx}%
+}
+% \end{macrocode}
+%
+% To begin with, we write the standard locations for audio and chunk
+% data to the |.spelidx| file.
+% \begin{macrocode}
+\newcommand\audiodir{\jobname-spel}
+\newcommand\chunkdir{\jobname-spel}
+\addtostream{spelidx}{format|\spel@format}
+\addtostream{spelidx}{audiodir|\audiodir}
+\addtostream{spelidx}{chunkdir|\chunkdir}
+% \end{macrocode}
+%
+% To ease writing to the speech index stream, we define a |\spelidxwrite|
+% function to take care of appropriate formatting.
+% \begin{macro}{\spel@idxwrite}
+% This is an internal macro, used to write information to the |.spelidx|
+% file and to a correspondig chunk file.
+% \begin{macrocode}
+\ifspel@disabled\newcommand{\spel@idxwrite}[2]{}\else
+\newcommand{\spel@idxwrite}[2]{%
+ \typeout{spel: Generating #1 - #2}%
+ \addtostream{spelidx}{#1|#2}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% To ease writing speech chunk, we define a |\spel@chunkwrite|
+% function.
+% \begin{macro}{\spel@chunkwrite}
+% This is an internal macro, used to write information to the speech chunk
+% files.
+% \begin{macrocode}
+\ifspel@disabled\newcommand{\spel@chunkwrite}[2]{}\else
+\newcommand{\spel@chunkwrite}[2]{%
+ \openoutputfile{\audiodir/#1.tex}{chunk}%
+ \addtostream{chunk}{#2}%
+ \closeoutputstream{chunk}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Create missing counters}
+% As we need to be able to fully identify every speech chunk, we need
+% to provide some missing counters for the starred versions of the
+% sectioning commands.
+%
+% \begin{macro}{spel@spart} counter
+% \begin{macrocode}
+\newcounter{spel@spart}
+\renewcommand\thespel@spart{\@arabic\c@spel@spart}
+\setcounter{spel@spart}{0}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{spel@schapter} counter
+% \begin{macrocode}
+\ifx\c@chapter\@undefined
+\else
+\ifx\c@part\@undefined
+\newcounter{spel@schapter}
+\else
+\newcounter{spel@schapter}[part]
+\fi
+\renewcommand\thespel@schapter{\@arabic\c@spel@schapter}
+\setcounter{spel@schapter}{0}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{spel@ssect} counter
+% \begin{macrocode}
+\ifx\c@chapter\@undefined
+\newcounter{spel@ssect}
+\else
+\newcounter{spel@ssect}[chapter]
+\fi
+\renewcommand\thespel@ssect{\@arabic\c@spel@ssect}
+\setcounter{spel@ssect}{0}
+% \end{macrocode}
+% \end{macro}
+%
+% In addition, some elements that are not canonically numbered require
+% a unique and monotonous numbering.
+% \begin{macro}{spel@footnote} counter
+% \begin{macrocode}
+\newcounter{spel@footnote}
+\renewcommand\thespel@footnote{\@arabic\c@spel@footnote}
+\setcounter{spel@footnote}{0}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{spel@chunk} counter
+% \begin{macrocode}
+\newcounter{spel@chunk}[subparagraph]
+\renewcommand\thespel@chunk{\@arabic\c@spel@chunk}
+\setcounter{spel@chunk}{0}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Setting up the language}
+% We want to make sure that babel communicates the switching of
+% langauges to spel, such that it can take not of it. This allows the
+% spel engine to select an appropriate language-capable voice when
+% generating the spoken text.
+% \begin{macrocode}
+\AddBabelHook{informspel}{write}{\spel@idxwrite{language}{\languagename}}
+\EnableBabelHook{informspel}
+% \end{macrocode}
+%
+% \subsection{Generating speech chunks --- implicitly}
+% \subsubsection{Auxiliary macros}
+% We define a macro to generate wrappers for single-line text elements.
+% The |\spel@registerelement| macro does
+% the job. The user can even use the macro for his own custom
+% single-line text elements (e.g., for a subtitle, a version string).
+% \begin{macro}{\spel@registerelement}
+% generic macro to register single-line text elements
+% \begin{macrocode}
+\ifspel@disabled\newcommand{\spel@registerelement}[1]{}\else
+\newcommand{\spel@registerelement}[1]{%
+ \expandafter\let\csname spel@@#1\expandafter\endcsname\csname #1\endcsname
+ \expandafter\gdef\csname #1\endcsname##1{%
+ \spel@chunkwrite{#1}{##1}
+ \csname spel@@#1\endcsname{\href{run:\audiodir/#1.\spel@format}{##1}}
+ }
+ \expandafter\AtBeginDocument{
+ \spel@idxwrite{#1}{#1}
+ }
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Title elements}
+% By redefining the title elements, |\title|, |\author| and |\date| we
+% avoid having to chunk them.
+%
+% Using this macro, we can easily take care of all title-like
+% elements, using:
+% \begin{macrocode}
+\spel@registerelement{title}
+\spel@registerelement{date}
+\spel@registerelement{author}
+% \end{macrocode}
+%
+% \subsubsection{Boxed material}
+% by redefining the makebox, mbox and usebox commands, we can create
+%
+% \subsubsection{Table of contents}
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@addcontentsline\addcontentsline
+\renewcommand\addcontentsline[3]{%
+ \let\spel@@href\href%
+ \renewcommand\href[2]{#2}%
+ \spel@@addcontentsline{#1}{#2}{#3}%
+ \let\href\spel@@href%
+}
+\providecommand{\tableofcontents}{}
+\renewcommand\tableofcontents{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \@ifclassloaded{article}{\section*{\contentsname}}{\chapter*{\contentsname}}
+ \@mkboth{%
+ \MakeUppercase\contentsname}{\MakeUppercase\contentsname}%
+ \@starttoc{toc}%
+ \if@restonecol\twocolumn\fi
+ }
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Sectioning commands}
+%
+% \begin{macro}{\@part}
+% This is a simple wrapper around the regular |\@part| macro.
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@part\@part
+\def\@part[#1]#2{%
+ \setcounter{spel@chunk}{0}% need this because counter resetting fails
+ \spel@@part[#1]{\href{run:\audiodir/\spel@@optpart.\spel@format}{#2}}%
+ \spel@idxwrite{part \thepart}{\spel@@optpart}%
+ \spel@chunkwrite{\spel@@optpart}{#2}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@spart}
+% This is a simple wrapper around the regular |\@spart| macro.
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@spart\@spart
+\def\@spart#1{%
+ \stepcounter{spel@spart}%
+ \setcounter{spel@chunk}{0}% need this because counter resetting fails
+ \spel@@spart{%
+ \href{run:\audiodir/\spel@@optpart star-\thespel@spart.\spel@format}{#1}}%
+ \spel@idxwrite{part}{\spel@@optpart star-\thespel@spart}%
+ \spel@chunkwrite{\spel@@optpart star-\thespel@spart}{#1}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chapter}
+% This is a simple wrapper around the regular |\@chapter| macro.
+% It is defined conditionally on the existence of the |\chapter| macro.
+% \begin{macrocode}
+\ifspel@disabled\else
+\ifx\chapter\@undefined\else
+\let\spel@@chapter\@chapter
+\def\@chapter[#1]#2{%
+ \setcounter{spel@chunk}{0}% need this because counter resetting fails
+ \spel@@chapter[#1]{%
+ \href{run:\audiodir/\spel@@optpart\thechapter.\spel@format}{#2}}%
+ \spel@idxwrite{chapter \thechapter}{\spel@@optpart\thechapter}%
+ \spel@chunkwrite{\spel@@optpart\thechapter}{#2}%
+}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@schapter}
+% This is a simple wrapper around the regular |\@schapter| macro.
+% It is defined condionally on the existence of the |\schapter| macro.
+% \begin{macrocode}
+\ifspel@disabled\else
+\ifx\schapter\@undefined\else
+\let\spel@@schapter\@schapter
+\def\@schapter#1{%
+ \stepcounter{spel@schapter}%
+ \setcounter{spel@chunk}{0}% need this because counter resetting fails
+ \spel@@schapter{%
+ \href{run:\audiodir/\spel@@optpart star-\thespel@schapter.\spel@format}{#1}}%
+ \spel@idxwrite{chapter}{\spel@@optpart star-\thespel@schapter}%
+ \spel@chunkwrite{\spel@@optpart star-\thespel@schapter}{#1}%
+}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect}
+% This is a simple wrapper around the regular |\@sect| macro.
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@sect\@sect
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ % correct default tex behavior
+ \ifnum #2>\c@secnumdepth%
+ \stepcounter{#1}%
+ \fi%
+ \setcounter{spel@chunk}{0}% need this because counter resetting fails
+ \spel@@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{%
+ \href{run:\audiodir/\spel@@optpart\thesubparagraph.\spel@format}{#8}\hfill%
+ \href{run:\audiodir/\spel@@optpart\thesubparagraph.m3u}{\textcolor{black!50}{\triangleright}}}%
+ \def\spel@@label{\ifnum #2>\c@secnumdepth\else#1 \csname the#1\endcsname\fi}
+ \spel@idxwrite{\spel@@label}{\spel@@optpart\thesubparagraph}%
+ \spel@chunkwrite{\spel@@optpart\thesubparagraph}{#8}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@sect}
+% This is a simple wrapper around the regular |\@ssect| macro.
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@ssect\@ssect
+\def\@ssect#1#2#3#4#5{%
+ \stepcounter{spel@ssect}%
+ %\setcounter{spel@chunk}{0}% need this because counter resetting fails
+ \spel@@ssect{#1}{#2}{#3}{#4}{%
+ \href{run:\audiodir/\spel@@optpart\thesubparagraph-star-\thespel@ssect.\spel@format}%
+ {#5}}%
+ \spel@idxwrite{section}{\spel@@optpart\thesubparagraph-star-\thespel@ssect}%
+ \spel@chunkwrite{\spel@@optpart\thesubparagraph-star-\thespel@ssect}{#5}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Notes}
+%
+% \begin{macro}{\@footnotetext}
+% This is a simple wrapper around the regular |\$footnotetext|
+% macro. We use a |spelfootnote| counter to keep track of the
+% individual footnotes.
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@fntext\@footnotetext
+\long\def\@footnotetext#1{%
+ \stepcounter{spel@footnote}%
+ \spel@@fntext{%
+ \href{run:\audiodir/footnote-\thespel@footnote.\spel@format}{#1}}
+ \spel@idxwrite{footnote}{footnote-\thespel@footnote}%
+ \spel@chunkwrite{footnote-\thespel@footnote}{#1}%
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Itemizations/Enumerations}
+
+% \begin{macro}{\spelitem}
+% This macro is to be used inside an enumerate, itemize, description
+% environment to automatically cause the generation of a speech
+% chunk.
+% \begin{macrocode}
+\ifspel@disabled\newcommand{\spelitem}{\item}\else
+\newcommand{\spelitem}{%
+ \@ifnextchar[{\spelitem@opt}{\spelitem@intone}
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% This macro uses a number of auxiliary macros.
+% \begin{macro}{\spelitem@opt}
+% This is an internal macro intended to deal with the |\item|'s
+% options.
+% \begin{macrocode}
+\def\spelitem@opt[#1]{\spelitem@inttwo{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\spelitem@opt}
+% This is an internal macro intended to deal with an |\spelitem| without
+% options.
+% \begin{macrocode}
+\def\spelitem@intone#1{%
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1}%
+ \item \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\spelitem@inttwo}
+% This is an internal macro intended to deal with an |\spelitem| with
+% options.
+% \begin{macrocode}
+\def\spelitem@inttwo#1#2{%
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{item}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#1 . #2}%
+ \item[#1] \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\caption}
+% This is a redefinition of the |\caption| macro such that it
+% becomes alive.
+% \begin{macrocode}
+\ifspel@disabled\else
+\let\spel@@caption\caption
+\renewcommand\caption[2][]{%
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{caption}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \spel@chunkwrite{\spel@@optpart\thesubparagraph-\thespel@chunk}{#2}%
+ \spel@@caption[#1]{\protect\href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{#2}}
+}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Generating speech chunks --- explicitly}
+%
+% \subsubsection{Spel chunks to be parsed by \spelpl}
+% \begin{environment}{spelchunk}
+% The |spelchunk| environment is used to define explicit speech chunks.
+% \begin{macrocode}
+\ifspel@disabled\def\spelchunk{}\else
+\def\spelchunk{%
+ \catcode`\^^M=\active%
+ \stepcounter{spel@chunk}%
+ \spel@idxwrite{chunk}{\spel@@optpart\thesubparagraph-\thespel@chunk}%
+ \@ifnextchar[{\catcode`\^^M=5\spelchunk@opt}{\catcode`\^^M=5\spelchunk@int}}%
+\fi
+\ifspel@disabled\def\endspelchunk{}\else
+\def\endspelchunk{%
+ \end{VerbatimOut}%
+ \catcode`\^^M=5\relax%
+ \href{run:\audiodir/\spel@@optpart\thesubparagraph-\thespel@chunk.\spel@format}{\input{./\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk}\leavevmode}%
+}%
+\fi
+% \end{macrocode}
+% \end{environment}
+%
+% The environment above checks if it is called with optional arguments
+% or not.
+% \begin{macro}{\spelchunk@opt}
+% This is macro that deals with the optional arguments of the
+% |spelchunk| envronment.
+% \begin{macrocode}
+\def\spelchunk@opt[#1]{\fvset{#1}\spelchunk@int}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\spelchunk@int}
+% This is an internal macro to start the |VerbatimOut| environment
+% embedded in the |spelchunk| environment.
+% \begin{macrocode}
+\def\spelchunk@int{%
+ \VerbatimEnvironment
+ \begin{VerbatimOut}{\chunkdir/\spel@@optpart\thesubparagraph-\thespel@chunk.tex}}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{Provideing an explicit audiodescription for a spelchunk}
+%
+% \begin{environment}{spelchunkad}
+% The |spelchunkad| environment is used to override a previous speech
+% chunk. In this way you can provide your own text.
+% \begin{macrocode}
+\def\spelchunkad{%
+ \catcode`\^^M=\active
+ \@ifnextchar[{\catcode`\^^M=5\spelchunk@opt}{\catcode`\^^M=5\spelchunk@int}}
+\def\endspelchunkad{%
+ \end{VerbatimOut}
+ \catcode`\^^M=5\relax
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macrocode}
+\AtBeginDocument{
+ \newcommand\spel@@optpart{}
+}
+% \end{macrocode}
+%
+% \subsection{Helping the wizard to read our chunks}
+%
+% \subsubsection{Listing macros that are to be preprocessed}
+% Some \LaTeX{} or \TeX commands are only for layout purposes and are
+% totally not content related. They do not contribute to what must be
+% read. On the contrary, they make it hard for the \spelpl{} parser to
+% convert the texts flawlessly to what can be read by the
+% text-to-speech engines.
+% Examples of these layout-only commands are |\sf|, |\it|, |\tt|,
+% |\bf| and |\displaystyle| that are to be discarded, but also macro's
+% like e.g. |\fbox| for which only the content is to be retained.
+%
+% As you might also make your own macros that are pure typesetting
+% oriented, it makes sense to provide a macro that registers them as
+% pure type-setting macros and use that macro to cover the examples
+% mentioned above.
+% \begin{macro}{\spelmacpp}
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelmacpp}{moom}
+{
+ \addtostream{spelidx}{macpp|#1|#2|#3|#4}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% Now let's register some standard macros that are to be ignored.
+% \begin{macrocode}
+\spelmacpp{sf}{}
+\spelmacpp{it}{}
+\spelmacpp{tt}{}
+\spelmacpp{bf}{}
+\spelmacpp{HUGE}{}
+\spelmacpp{Huge}{}
+\spelmacpp{huge}{}
+\spelmacpp{LARGE}{}
+\spelmacpp{Large}{}
+\spelmacpp{large}{}
+\spelmacpp{normalsize}{}
+\spelmacpp{small}{}
+\spelmacpp{footnotesize}{}
+\spelmacpp{scriptsize}{}
+\spelmacpp{tiny}{}
+\spelmacpp{minuscule}{}
+\spelmacpp{textsf}[1]{keep}
+\spelmacpp{textit}[1]{keep}
+\spelmacpp{texttt}[1]{keep}
+\spelmacpp{textbf}[1]{keep}
+\spelmacpp{quad}{}
+\spelmacpp{qquad}{}
+\spelmacpp{displaystyle}{}
+\spelmacpp{relax}{}
+\spelmacpp{strut}{}
+\spelmacpp{mathstrut}{}
+\spelmacpp{label}[1]{}
+% \end{macrocode}
+%
+% And let's register a macro for which only the contents is to be
+% preserved:
+% \begin{macrocode}
+\spelmacpp{fbox}[1]{keep}
+% \end{macrocode}
+%
+% \subsubsection{Listing environments that are to be ignored}
+% Some \LaTeX{} or \TeX environments are only for layout purposes and are
+% totally not content related. They do not contribute to what must be
+% read. On the contrary, they make it hard for the \spelpl{} parser to
+% convert the texts flawlessly to what can be read by the
+% text-to-speech engines.
+% An examples of such a layout-only environment is the |center|
+% environment.
+%
+% As you might also make your own environments that are pure typesetting
+% oriented, it makes sense to provide a macro that registers them as
+% pure type-setting macros and use that macro to cover the examples
+% mentioned above.
+% \begin{macro}{\spelenvpp}
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelenvpp}{moom}
+{
+ \addtostream{spelidx}{envpp|#1|#2|#3|#4}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% Now let's register some standard macros that are to be ignored:
+% \begin{macrocode}
+\spelenvpp{center}{keep}
+% \end{macrocode}
+%
+% \subsubsection{Audio descriptions for typesetting macros}
+% \begin{macro}{\spelmacad}
+% This macro allows specifying how to treat macros (with arguments)
+% that appear in the chunks to read out loud. The arguments are in
+% order:
+% \begin{enumerate}
+% \item (mandatory) name of the macro (without leading backslash)
+% \item (optional) number of arguments of the macro
+% \item (optional) default for optional (first) argument
+% \item (mandatory) text to read (with macro parameters in them)
+% You can use the special syntax
+% |@{i18n(keyword,#1,#2)}|
+% to trigger a call to the internationalization (i18n) features built
+% in the \spelpl{} script. This will help to read your commands in an
+% appropriate way. If you miss some features in the i18n list of
+% \spelpl{}, please contact the author to help you out.
+% If you are fluent in Perl, you might also want to change the i18n
+% list of \spelpl{} yourself. It's not that hard.
+% \end{enumerate}
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelmacad}{moom}
+{
+ \addtostream{spelidx}{macad|#1|#2|#3|#4}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% We immediately provide some standard constructs, which are to be
+% ignored:
+% \begin{macrocode}
+\spelmacad{spelatex}{spee-laytech}
+\spelmacad{spelbox}{spel-box}
+\spelmacad{spelpl}{spel wizzard dot pl}
+\spelmacad{LaTeX}{laytech}
+\spelmacad{TeX}{tech}
+\spelmacad{textsf}[1]{#1}
+\spelmacad{texttt}[1]{#1}
+\spelmacad{textit}[1]{#1}
+\spelmacad{emph}[1]{#1}
+\spelmacad{underline}[1]{#1}
+\spelmacad{mbox}[1]{#1}
+\spelmacad{text}[1]{#1}
+\spelmacad{nobreakspace}{#1}
+\spelmacad{textasciitilde}[1]{ }
+\spelmacad{textbackslash}{backslash}
+\spelmacad{footnote}[1]{}
+\spelmacad{pm}{@{i18n(plusminus)}}
+\spelmacad{ldots}{...}
+% \end{macrocode}
+%
+% Some more that don't seem ignorable - and they are not indeed - they
+% are treated differently by \spelpl{}. However, by registering them
+% here, \spelpl{} knows there signature:
+% \begin{macrocode}
+\spelmacad{cite}[1]{}
+\spelmacad{ref}[1]{}
+\spelmacad{pageref}[1]{}
+% \end{macrocode}
+%
+% \subsubsection{Audio descriptions for typesetting environments}
+% \begin{macro}{\spelenvad}
+% This macro allows specifying how to treat environments (with arguments)
+% that appear in the chunks to read out loud. The arguments are in order:
+% \begin{enumerate}
+% \item (mandatory) name of the macro (without leading backslash)
+% \item (optional) number of arguments of the macro
+% \item (optional) default for optional (first) argument
+% \item (mandatory) text to read (with macro parameters in them)
+% \end{enumerate}
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\spelenvad}{moomm}
+{
+ \addtostream{spelidx}{envad|#1|#2|#3|#4|#5}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% We immediately provide some standard constructs, which are to be
+% ignored:
+% \begin{macrocode}
+\spelenvad{center}{}{}
+% \end{macrocode}
+%
+% \subsection{Implementing the extra math commands}
+%
+% The commands are only loaded if the package option |extramath| is
+% provided:
+%
+% \begin{macrocode}
+\ifspel@extramath
+% \end{macrocode}
+%
+% \begin{macro}{\setenum}
+% This macro typesets a set defined by enumeration:
+% \begin{macrocode}
+\DeclareRobustCommand{\setenum}[1]{\left\{#1\right\}}
+\spelmacad{setenum}[1]{@{i18n(Setenum,#1)}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\setdesc}
+% This macro typesets a set defined by description:
+% \begin{macrocode}
+\DeclareRobustCommand{\setdesc}[1]{\left\{#1\right\}}
+\spelmacad{setdesc}[1]{@{i18n(Setdesc,#1)}}
+% \end{macrocode}
+% \end{macro}
+%
+% Note that these two macro's are identical! However, the fact that
+% they have a different name is of great value to \spelpl{}.
+%
+% The conditional loading ends here:
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \iffalse
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \fi
+
+%
+% \bibliographystyle{alpha}
+%
+% \begin{thebibliography}{99}
+%
+% \bibitem{EMACS}
+% The Emacs An extensible, customizable, free text editor --- and
+% more.
+% \newblock \url{https://www.gnu.org/software/emacs/}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{ORGMODE}
+% Org Mode --- your life in plain text.
+% \newblock \url{https://orgmode.org/}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{OXSPELATEX}
+% Org Mode SpeLaTeX Exporter --- SpeLaTeX made easy.
+% \newblock \url{https://www.melpa.org/#/ox-spelatex}
+% \newblock (not yet online)
+%
+% \bibitem{SPEL}
+% SpeL --- Speech-enabled LaTeX.
+% \newblock \url{https://ctan.org/pkg/spel}
+% \newblock online, accessed in June 2024.
+%
+% \bibitem{SPELWIZARD}
+% SpeL::Wizard --- Incantating LaTeX into natural lanuage
+% \newblock \url{https://metacpan.org/pod/SpeL::Wizard}
+% \newblock online, accessed in June 2024.
+%
+% \bibitem{FESTIVAL}
+% The Festival TTS-program.
+% \newblock \url{http://www.cstr.ed.ac.uk/projects/festival}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{BALABOLKA}
+% The Balabolka TTS-program.
+% \newblock \url{http://www.cross-plus-a.com/balabolka.htm}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{FREETTS}
+% FreeTTS --- A speech synthesizer in Java.
+% \newblock \url{https://freetts.sourceforge.io/docs/index.php}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{AWSPOLLY}
+% Amazon Polly --- An online text-to-speech engine.
+% \newblock \url{https://aws.amazon.com/polly}
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{CTAN}
+% The Comprehensive \TeX{} Archive Network.
+% \newblock \url{http://www.ctan.org}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{CPAN}
+% The Comprehensive Perl Archive Network.
+% \newblock \url{http://www.cpan.org}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{XPDF}
+% xpdf, a simple and very fast PDF reader on \GNU/Linux.
+% \newblock \url{http://www.xpdfreader.com/}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{EVINCE}
+% evince, a PDF reader, part of the Gnome environment.
+% \newblock \url{https://help.gnome.org/users/evince/stable/}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{OKULAR}
+% okular, a PDF reader, part of the KDE environment.
+% \newblock \url{https://okular.kde.org}.
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{ADOBEREADER}
+% Adobe Reader, a PDF reader from Adobe.
+% \newblock \url{https://get.adobe.com/}
+% \newblock online, accessed in May 2024.
+%
+% \bibitem{PDFXCHANGE}
+% PDF XChange Viewer, a PDF reader from Tracker Software.
+% \newblock \url{https://www.pdf-xchange.com/}
+% \newblock online, accessed in May 2024.
+%
+% \end{thebibliography}
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/spelatex/spelatex.ins b/macros/latex/contrib/spelatex/spelatex.ins
new file mode 100644
index 0000000000..dfe1cbf39e
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex.ins
@@ -0,0 +1,58 @@
+%% Copyright (C) 2024 by Walter Daems <walter.daems@uantwerpen.be>
+%% and Paul Levrie
+%%
+%% This work may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Walter Daems.
+%%
+%% This work consists of the files lts.dtx and lts.ins
+%% and all derived files.
+
+\input docstrip.tex
+\keepsilent
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2024 by Walter Daems <walter.daems@ieee.org>
+ and Paul Levrie
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+
+\endpreamble
+
+\usedir{tex/latex/spelatex}
+\generate{\file{spelatex.sty}{\from{spelatex.dtx}{package}}}
+
+\obeyspaces
+\Msg{***************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to merge the TDS tree *}
+\Msg{* into your TEXMFLOCAL tree. *}
+\Msg{* *}
+\Msg{* Good luck! *}
+\Msg{* *}
+\Msg{* Walter *}
+\Msg{* *}
+\Msg{***************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/spelatex/spelatex.pdf b/macros/latex/contrib/spelatex/spelatex.pdf
new file mode 100644
index 0000000000..d67ecaf4ae
--- /dev/null
+++ b/macros/latex/contrib/spelatex/spelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/tblr-extras/tblr-extras-dev.sty b/macros/latex/contrib/tblr-extras/tblr-extras-dev.sty
new file mode 100644
index 0000000000..45c58d081a
--- /dev/null
+++ b/macros/latex/contrib/tblr-extras/tblr-extras-dev.sty
@@ -0,0 +1,242 @@
+% -----------------------------------------------------------------------
+%%% tblr-extras: Extra libraries for tabularray package.
+%%% Version : 1.2 - 2024-05-30
+%%% Copyright : 2024 (c) Manuel E. Merino <manuel.merino.pe@gmail.com>
+%%% License : The LaTeX Project Public License 1.3c
+% -----------------------------------------------------------------------
+%%% LPPL 1.3c Notice: ---------------------------------------------------
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Manuel E. Merino
+% -----------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+\ProvidesPackage{tblr-extras-dev}[2024/05/30 package tblr-extras]
+\RequirePackage{tabularray}
+%% ----------------------------------------------------------------------
+%% TblrLibrary caption - Use caption package to typeset tabularray tall
+%% and long tabulars captions.
+%% This stuff needs to be ported to expl3 soon.
+\ExplSyntaxOn
+\prg_generate_conditional_variant:Nnn \tl_if_empty:n { e } { TF }
+\let \IfTokenListEmpty = \tl_if_empty:eTF
+\let \IfBoolFalse = \bool_if:NF
+\let \IfBoolTF = \bool_if:NTF
+\bool_new:N \l__tblrextras_table_title_below_bool
+\bool_set_false:N \l__tblrextras_table_title_below_bool
+\NewTblrLibrary{caption}
+{%
+ \RequirePackage{caption}
+ %% Check if a KomaClass is loaded and issue a warning for caption position setup
+ \@ifundefined{KOMAClassName}
+ {}
+ {\PackageWarningNoLine{tblr-extras}{KOMAScript class detected. Setup caption position using 'captions=option'}}
+ %%% Presetup
+ \NewDocumentCommand{\TblrCaptionBelow}{}{\bool_set_true:N \l__tblrextras_table_title_below_bool}
+ \NewDocumentCommand{\TblrCaptionAbove}{}{\bool_set_false:N \l__tblrextras_table_title_below_bool}
+ \SetTblrOuter[talltblr,longtblr]{headsep=0pt}
+ %%%%%%%%%% TEMPLATES
+ \DefTblrTemplate{firsthead}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ { }
+ % Cap Above (default)
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \IfTokenListEmpty{\InsertTblrText{entry}}{
+ \caption{\InsertTblrText{caption}}
+ \UseTblrTemplate{contfoot}{default}
+ }{
+ \caption[\InsertTblrText{entry}]{\InsertTblrText{caption}}
+ }
+ }
+ }
+ } % END FIRSTHEAD
+ \DefTblrTemplate{middlehead}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % Cap Above (default)
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}~ \UseTblrTemplate{conthead-text}{default}}
+ }
+ }
+ }% END MIDDLEHEAD
+ \DefTblrTemplate{lasthead}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % Cap Above (default)
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}~ \UseTblrTemplate{conthead-text}{default}}
+ }
+ }
+ }% END LASTHEAD
+ \DefTblrTemplate{firstfoot}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{contfoot}{default} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}}
+ \UseTblrTemplate{contfoot}{default}
+ }
+ % Cap Above (default)
+ {
+ \UseTblrTemplate{contfoot}{default}
+ }
+ }
+ }% END FIRSTFOOT
+ \DefTblrTemplate{middlefoot}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{contfoot}{default} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}}
+ \UseTblrTemplate{contfoot}{default}
+ }
+ % Cap Above (default)
+ {
+ \UseTblrTemplate{contfoot}{default}
+ }
+ }
+ }% END MIDDLEFOOT
+ \DefTblrTemplate{lastfoot}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ {
+ \UseTblrTemplate{note}{default}
+ \UseTblrTemplate{remark}{default}
+ }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ {
+ \UseTblrTemplate{note}{default}
+ \UseTblrTemplate{remark}{default}
+ \addtocounter{table}{-1}
+ \captionsetup{type=table} \IfTokenListEmpty{\InsertTblrText{entry}}{
+ \caption{\InsertTblrText{caption}}
+ }{
+ \caption[\InsertTblrText{entry}]{\InsertTblrText{caption}}
+ }
+ }
+ % Cap Above (default)
+ {
+ \UseTblrTemplate{note}{default}
+ \UseTblrTemplate{remark}{default}
+ }
+ }
+ }% END LASTFOOT
+ \SetTblrTemplate{caption-lot}{empty}
+}
+\ExplSyntaxOff
+%% ----------------------------------------------------------------------
+%% TblrLibrary babel - Translate contfoot and conthead to current babel/polyglossia
+%% language. Supports: ngerman, french, spanish, russian and ukrainian translations.
+%% Check engine
+\newif\if@unicode@engine
+\ifdefined\luatexversion
+ \@unicode@enginetrue
+\else\ifdefined\XeTeXrevision
+ \@unicode@enginetrue
+\fi\fi
+\NewTblrLibrary{babel}
+{%
+ \AddToHook{begindocument/before}{%
+ \@ifpackageloaded{babel}{}{%
+ \@ifpackageloaded{polyglossia}{}{%
+ \RequirePackage{babel}
+ }
+ }
+ \ifdefined\captionsspanish
+ \addto\captionsspanish{%
+ \DefTblrTemplate{contfoot-text}{default}{Continúa en la página siguiente}%
+ \DefTblrTemplate{conthead-text}{default}{(Continuación)}%
+ }
+ \fi
+ \ifdefined\captionsngerman
+ \addto\captionsngerman{%
+ \DefTblrTemplate{contfoot-text}{default}{Fortsetzung auf der nächsten Seite}%
+ \DefTblrTemplate{conthead-text}{default}{(Fortsetzung)}%
+ }
+ \fi
+ \ifdefined\captionsgerman
+ \addto\captionsgerman{%
+ \DefTblrTemplate{contfoot-text}{default}{Fortsetzung auf der nächsten Seite}%
+ \DefTblrTemplate{conthead-text}{default}{(Fortsetzung)}%
+ }
+ \fi
+ \ifdefined\captionsfrench
+ \addto\captionsfrench{%
+ \DefTblrTemplate{contfoot-text}{default}{Suite à la page suivante}%
+ \DefTblrTemplate{conthead-text}{default}{(Suite)}%
+ }
+ \fi
+ \ifdefined\captionsrussian
+ \if@unicode@engine
+ \addto\captionsrussian{%
+ \DefTblrTemplate{contfoot-text}{default}{Продолжение на следующей странице}%
+ \DefTblrTemplate{conthead-text}{default}{(продолжение)}%
+ }
+ \else
+ \addto\captionsrussian{%
+ \DefTblrTemplate{contfoot-text}{default}{\cyr\CYRP\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyre\cyrn\cyri\cyre\ \cyrn\cyra\ \cyrs\cyrl\cyre\cyrd\cyru\cyryu\cyrshch\cyre\cyrishrt\ \cyrs\cyrt\cyrr\cyra\cyrn\cyri\cyrc\cyre}%
+ \DefTblrTemplate{conthead-text}{default}{(\cyr\cyrp\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyre\cyrn\cyri\cyre)}%
+ }
+ \fi
+ \fi
+ \ifdefined\captionsukrainian
+ \if@unicode@engine
+ \addto\captionsukrainian{%
+ \DefTblrTemplate{contfoot-text}{default}{Продовження на наступній сторінці}%
+ \DefTblrTemplate{conthead-text}{default}{(продовження)}%
+ }
+ \else
+ \addto\captionsukrainian{%
+ \DefTblrTemplate{contfoot-text}{default}{\cyr\CYRP\cyrr\cyro\cyrd\cyro\cyrv\cyrzh\cyre\cyrn\cyrn\cyrya\ \cyrn\cyra\ \cyrn\cyra\cyrs\cyrt\cyru\cyrp\cyrn\cyrii\cyrishrt\ \cyrs\cyrt\cyro\cyrr\cyrii\cyrn\cyrc\cyrii}%
+ \DefTblrTemplate{conthead-text}{default}{(\cyr\cyrp\cyrr\cyro\cyrd\cyro\cyrv\cyrzh\cyre\cyrn\cyrn\cyrya)}%
+ }
+ \fi
+ \fi
+ }
+}
diff --git a/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.pdf b/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.pdf
index 9262427895..948fab715f 100644
--- a/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.pdf
+++ b/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.pdf
Binary files differ
diff --git a/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.tex b/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.tex
index 308c0e232a..6807f48758 100644
--- a/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.tex
+++ b/macros/latex/contrib/tblr-extras/tblr-extras-doc-EN.tex
@@ -1,6 +1,6 @@
% -----------------------------------------------------------------------
%%% tblr-extras-doc: Documentation for tblr-extras package.
-%%% Version : 1.1 - 2024-05-13
+%%% Version : 1.2 - 2024-06-11
%%% Copyright : 2024 (c) Manuel E. Merino <manuel.merino.pe@gmail.com>
%%% License : The LaTeX Project Public License 1.3c
% -----------------------------------------------------------------------
@@ -17,7 +17,7 @@
%
% The Current Maintainer of this work is Manuel E. Merino
% -----------------------------------------------------------------------
-\documentclass[a4paper,12pt]{article}
+\documentclass[a4paper,11pt]{article}
\usepackage{fontspec}
\setmainfont{montserrat}
\setsansfont{montserrat}
@@ -31,7 +31,7 @@
\usepackage{parskip}
\usepackage[hidelinks]{hyperref}
-\newcommand{\Version}{1.1}
+\newcommand{\Version}{1.2}
\NewDocumentCommand{\tblrextras}{}{\textbf{\color{udep}tblr-extras}}
@@ -40,7 +40,7 @@
\centering
\LARGE\textbf{Package \color{udep}tblr-extras}\par
\large Manuel E. Merino\par
- \texttt{v\Version{} - 13/06/2024}\par
+ \texttt{v\Version{} - 11/06/2024}\par
\normalsize Extra libraries for tabularray package.\par
\endgroup
\tableofcontents
@@ -60,27 +60,36 @@
\section{Available libraries}
\subsection{caption library}
- The \tblrextras{} package changes the way \texttt{tabularray} typesets the captions of \texttt{talltblr} and \texttt{longtblr} environments, using the settings defined by the \texttt{caption} package.
+ This \tblrextras{} library changes the way \texttt{tabularray} typesets the captions of \texttt{talltblr} and \texttt{longtblr} environments, using the settings defined by the \texttt{caption} package.
To enable this library, use \verb*|\UseTblrLibrary{caption}| after loading \tblrextras{} and \texttt{tabularray} packages.
+ Since version 1.2, there is partial support for typesetting captions below tables. To enable this feature use the command \verb|\TblrCaptionBelow| to enable this feature. If you want to revert to captions above the table, use the command \verb|\TblrCaptionAbove|. Be aware that \texttt{longtblr} environments will position the caption hyperlink anchor in the lastfoot and the table will be listed in the List of Tables as if it was located in the last page occupied by the \texttt{longtblr}. environment.
+
\subsection{babel library}
+ Load this library using \verb|\UseTblrLibrary{babel}|
- The \tblrextras{} package redefines the \texttt{conthead-text} and \textbf{contfoot-text} for the \texttt{longtblr} environment, using the current babel language.
+ The \tblrextras{} package redefines the \texttt{conthead-text} and \texttt{contfoot-text} for the \texttt{longtblr} environment, using the current babel language if this library is enabled.
- Currently only spanish, ngerman, russian, ukrainian and french variants are supported.
+ Currently only spanish, italian, portuguese, ngerman, russian, ukrainian and french variants are supported.
\section{Bug reports and suggestions}
- For bug reports and suggestions, please use GitHub or send an email to manuel.merino.pe@gmail.com.
+ For bug reports, suggestions amd support, please use GitHub or send an email to manuel.merino.pe@gmail.com.
\section{License}
The \tblrextras{} package and all its included files are licensed under the LPPL v1.3c or later.
\section{Changelog}
-
- v1.1 - Thanks sgolovan.
+ v1.2 - Added new languages and an extension to caption library
+ \begin{itemize}
+ \item Improved the caption library to support \texttt{label=empty} and \texttt{entry=none}.
+ \item Added partial support for captions below the table using \verb|\TblrCaptionBelow| and to reverse the changes with \verb|\TblrCaptionAbove|.
+ \item Added support for portuguese and italian languages in the babel library.
+ \end{itemize}
+
+ v1.1 - This version uses code contributions by GitHub user \textbf{sgolovan}. Thanks for your contribution.
\begin{itemize}
\item Improved the babel library using language hooks.
\item Added support for polyglossia package.
diff --git a/macros/latex/contrib/tblr-extras/tblr-extras.sty b/macros/latex/contrib/tblr-extras/tblr-extras.sty
index a6742f4a10..6fa4d7511b 100644
--- a/macros/latex/contrib/tblr-extras/tblr-extras.sty
+++ b/macros/latex/contrib/tblr-extras/tblr-extras.sty
@@ -1,6 +1,6 @@
% -----------------------------------------------------------------------
%%% tblr-extras: Extra libraries for tabularray package.
-%%% Version : 1.1 - 2024-05-13
+%%% Version : 1.2 - 2024-06-11
%%% Copyright : 2024 (c) Manuel E. Merino <manuel.merino.pe@gmail.com>
%%% License : The LaTeX Project Public License 1.3c
% -----------------------------------------------------------------------
@@ -18,16 +18,19 @@
% The Current Maintainer of this work is Manuel E. Merino
% -----------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}[2018-04-01]
-\ProvidesPackage{tblr-extras}[2024/05/13 package tblr-extras]
+\ProvidesPackage{tblr-extras-dev}[2024/05/30 package tblr-extras]
\RequirePackage{tabularray}
%% ----------------------------------------------------------------------
%% TblrLibrary caption - Use caption package to typeset tabularray tall
%% and long tabulars captions.
-%% Empty token list checker wrapper
+%% This stuff needs to be ported to expl3 soon.
\ExplSyntaxOn
\prg_generate_conditional_variant:Nnn \tl_if_empty:n { e } { TF }
\let \IfTokenListEmpty = \tl_if_empty:eTF
-\ExplSyntaxOff
+\let \IfBoolFalse = \bool_if:NF
+\let \IfBoolTF = \bool_if:NTF
+\bool_new:N \l__tblrextras_table_title_below_bool
+\bool_set_false:N \l__tblrextras_table_title_below_bool
\NewTblrLibrary{caption}
{%
\RequirePackage{caption}
@@ -35,24 +38,138 @@
\@ifundefined{KOMAClassName}
{}
{\PackageWarningNoLine{tblr-extras}{KOMAScript class detected. Setup caption position using 'captions=option'}}
+ %%% Presetup
+ \NewDocumentCommand{\TblrCaptionBelow}{}{\bool_set_true:N \l__tblrextras_table_title_below_bool}
+ \NewDocumentCommand{\TblrCaptionAbove}{}{\bool_set_false:N \l__tblrextras_table_title_below_bool}
\SetTblrOuter[talltblr,longtblr]{headsep=0pt}
- \DefTblrTemplate{firsthead}{default}{%
- \addtocounter{table}{-1}%
- \IfTokenListEmpty{\InsertTblrText{entry}}{%
- \captionsetup{type=table}
- \caption{\InsertTblrText{caption}}%
- }{%
- \captionsetup{type=table}
- \caption[\InsertTblrText{entry}]{\InsertTblrText{caption}}%
- }%
- }
- \DefTblrTemplate{middlehead,lasthead}{default}{%
- \addtocounter{table}{-1}%
- \captionsetup{type=table}%
- \caption[]{\InsertTblrText{caption} \UseTblrTemplate{conthead-text}{default}}%
- }
+ %%%%%%%%%% TEMPLATES
+ \DefTblrTemplate{firsthead}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ { }
+ % Cap Above (default)
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \IfTokenListEmpty{\InsertTblrText{entry}}{
+ \caption{\InsertTblrText{caption}}
+ \UseTblrTemplate{contfoot}{default}
+ }{
+ \caption[\InsertTblrText{entry}]{\InsertTblrText{caption}}
+ }
+ }
+ }
+ } % END FIRSTHEAD
+ \DefTblrTemplate{middlehead}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % Cap Above (default)
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}~ \UseTblrTemplate{conthead-text}{default}}
+ }
+ }
+ }% END MIDDLEHEAD
+ \DefTblrTemplate{lasthead}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ { \UseTblrTemplate{conthead}{default} \vspace{4pt} }
+ % Cap Above (default)
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}~ \UseTblrTemplate{conthead-text}{default}}
+ }
+ }
+ }% END LASTHEAD
+ \DefTblrTemplate{firstfoot}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{contfoot}{default} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}}
+ \UseTblrTemplate{contfoot}{default}
+ }
+ % Cap Above (default)
+ {
+ \UseTblrTemplate{contfoot}{default}
+ }
+ }
+ }% END FIRSTFOOT
+ \DefTblrTemplate{middlefoot}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ { \UseTblrTemplate{contfoot}{default} }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ {
+ \addtocounter{table}{-1}
+ \captionsetup{type=table}
+ \caption[]{\InsertTblrText{caption}}
+ \UseTblrTemplate{contfoot}{default}
+ }
+ % Cap Above (default)
+ {
+ \UseTblrTemplate{contfoot}{default}
+ }
+ }
+ }% END MIDDLEFOOT
+ \DefTblrTemplate{lastfoot}{default}{
+ \IfBoolTF \l__tblr_table_no_label_bool
+ % True NoLabel
+ {
+ \UseTblrTemplate{note}{default}
+ \UseTblrTemplate{remark}{default}
+ }
+ % False NoLabel
+ {
+ \IfBoolTF \l__tblrextras_table_title_below_bool
+ % Cap Below
+ {
+ \UseTblrTemplate{note}{default}
+ \UseTblrTemplate{remark}{default}
+ \addtocounter{table}{-1}
+ \captionsetup{type=table} \IfTokenListEmpty{\InsertTblrText{entry}}{
+ \caption{\InsertTblrText{caption}}
+ }{
+ \caption[\InsertTblrText{entry}]{\InsertTblrText{caption}}
+ }
+ }
+ % Cap Above (default)
+ {
+ \UseTblrTemplate{note}{default}
+ \UseTblrTemplate{remark}{default}
+ }
+ }
+ }% END LASTFOOT
\SetTblrTemplate{caption-lot}{empty}
}
+\ExplSyntaxOff
%% ----------------------------------------------------------------------
%% TblrLibrary babel - Translate contfoot and conthead to current babel/polyglossia
%% language. Supports: ngerman, french, spanish, russian and ukrainian translations.
@@ -71,6 +188,18 @@
\RequirePackage{babel}
}
}
+ \ifdefined\captionsitalian
+ \addto\captionsitalian{%
+ \DefTblrTemplate{contfoot-text}{default}{Continua alla pagina successiva}%
+ \DefTblrTemplate{conthead-text}{default}{(Continua)}%
+ }
+ \fi
+ \ifdefined\captionsportuguese
+ \addto\captionsportuguese{%
+ \DefTblrTemplate{contfoot-text}{default}{Continua na próxima página}%
+ \DefTblrTemplate{conthead-text}{default}{(Continuação)}%
+ }
+ \fi
\ifdefined\captionsspanish
\addto\captionsspanish{%
\DefTblrTemplate{contfoot-text}{default}{Continúa en la página siguiente}%
diff --git a/macros/latex/contrib/tblr-extras/test-tblr-extras.pdf b/macros/latex/contrib/tblr-extras/test-tblr-extras.pdf
new file mode 100644
index 0000000000..7fdba6781d
--- /dev/null
+++ b/macros/latex/contrib/tblr-extras/test-tblr-extras.pdf
Binary files differ
diff --git a/macros/latex/contrib/tblr-extras/test-tblr-extras.tex b/macros/latex/contrib/tblr-extras/test-tblr-extras.tex
new file mode 100644
index 0000000000..7a4801bc3e
--- /dev/null
+++ b/macros/latex/contrib/tblr-extras/test-tblr-extras.tex
@@ -0,0 +1,42 @@
+\documentclass[a4paper]{report}
+\usepackage{tabularray}
+\usepackage{caption}
+ \captionsetup{labelfont=bf,justification=raggedleft,singlelinecheck=false,position=below,skip=4pt}
+\usepackage{tblr-extras-dev}
+\UseTblrLibrary{caption}
+ \TblrCaptionBelow
+\usepackage[hidelinks]{hyperref}
+\begin{document}
+
+ \listoftables
+
+ \clearpage
+
+ A table ref: \ref{tableA}.
+
+ \medspace
+
+ \centering
+ \begin{talltblr}[
+ caption = {Title of table},
+ entry = {Entry of table},
+ label = tableA,
+ remark{Note} = {Stuff to be a tablenote},
+ note{a} = {Stuff to be a cellnote},
+ % entry = none,
+ % label = none,
+ ]{
+ colspec = X[c]X[c]X[c],
+ hlines, vlines,
+ }
+ A\TblrNote{a} & B & C \\
+ A & B & C \\
+ A & B & C \\
+ A & B & C \\
+ A & B & C \\
+ A & B & C \\
+ A & B & C \\
+ A & B & C \\
+ A & B & C \\
+ \end{talltblr}
+\end{document} \ No newline at end of file