Compare commits
No commits in common. "master" and "bachelor-thesis-build" have entirely different histories.
master
...
bachelor-t
43 changed files with 6135 additions and 8 deletions
|
@ -1,8 +0,0 @@
|
||||||
# LatexPackagesBuild
|
|
||||||
Ready to use builds of my LaTeX packages.
|
|
||||||
|
|
||||||
These are mirrored builds of the main [latex-packages](https://git.abstractnonsen.se/latex/latex-packages) repository.
|
|
||||||
|
|
||||||
Branches named `${BRANCH}` in the main repository will be built and made available here as `${BRANCH}-build`. So feel free to clone these branches here to easily update your packages when the main package repo updates - without having to build the packages yourself!
|
|
||||||
|
|
||||||
For further information about these packages, visit the LatexPackages repository.
|
|
466
build_info.json
Normal file
466
build_info.json
Normal file
|
@ -0,0 +1,466 @@
|
||||||
|
{
|
||||||
|
"build_time": "",
|
||||||
|
"source files": {
|
||||||
|
"version": "v2.9-27-g2d16a2d",
|
||||||
|
"commit": "2d16a2d72a81696210140564037ce71ac4d8d91b",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
"pytex": {
|
||||||
|
"version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"commit": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
"tex_sources": [
|
||||||
|
{
|
||||||
|
"name": "math/faktor/mkessler-faktor.sty",
|
||||||
|
"source file": "math/faktor/faktor.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "618fa0a7a27b148f11ce06d43d5e0170",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/mathfont/mkessler-mathfont.sty",
|
||||||
|
"source file": "math/mathfont/mathfont.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "788546ecf5b583122f2088467f39021e",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/mathop/mkessler-mathop.sty",
|
||||||
|
"source file": "math/mathop/mathop.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "fa41a1c28ed039fdf647aedf72c1a7d5",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/mathfixes/mkessler-mathfixes.sty",
|
||||||
|
"source file": "math/mathfixes/mathfixes.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "ddbad7b601312828f19f9812c30247ba",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/mathsymb/mkessler-mathsymb.sty",
|
||||||
|
"source file": "math/mathsymb/mathsymb.pysty",
|
||||||
|
"build time": "2022/06/27 14:32",
|
||||||
|
"source version": "v2.9-24-g80377fc",
|
||||||
|
"source commit hash": "80377fc7844887fae81a19280a0c96087eba99b0",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "1a1e3360defc5ac209a9620f2c84cc20",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/mathalias/mkessler-mathalias.sty",
|
||||||
|
"source file": "math/mathalias/mathalias.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "710f8e96ac17316c338489e9042d7e27",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/mathfig/mkessler-mathfig.sty",
|
||||||
|
"source file": "math/mathfig/mathfig.pysty",
|
||||||
|
"build time": "2022/06/27 15:10",
|
||||||
|
"source version": "v2.9-26-g8c5b9ad",
|
||||||
|
"source commit hash": "8c5b9ad7a43452dd729b066ea7818e2a7436a149",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "fd27c49b9ffdb8bd8756095816488beb",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wrappers/todo/mkessler-todo.sty",
|
||||||
|
"source file": "wrappers/todo/todo.pysty",
|
||||||
|
"build time": "2022/06/27 15:33",
|
||||||
|
"source version": "v2.9-27-g2d16a2d",
|
||||||
|
"source commit hash": "2d16a2d72a81696210140564037ce71ac4d8d91b",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "2c09ed62ddf08a701e9b51995ca17296",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wrappers/math/mkessler-math.sty",
|
||||||
|
"source file": "wrappers/math/math.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "f90a3672b511eb8b37264b7a286d46cf",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wrappers/hypersetup/mkessler-hypersetup.sty",
|
||||||
|
"source file": "wrappers/hypersetup/hypersetup.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "3143151d3e987e479a9f6ef242156814",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wrappers/enumerate/mkessler-enumerate.sty",
|
||||||
|
"source file": "wrappers/enumerate/enumerate.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "a2a3eab71093fac3709925890a7df306",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wrappers/unicodechar/mkessler-unicodechar.sty",
|
||||||
|
"source file": "wrappers/unicodechar/unicodechar.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "5ed2b996d495d8d1f32524a93184f96b",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wrappers/incfig/mkessler-incfig.sty",
|
||||||
|
"source file": "wrappers/incfig/incfig.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "7c4be513b46c172683e075d5206f07d6",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "utils/findpackage/mkessler-findpackage.sty",
|
||||||
|
"source file": "utils/findpackage/findpackage.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "a755107a340cc79c3121f067b2e33ba7",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "utils/counters/mkessler-counters.sty",
|
||||||
|
"source file": "utils/counters/counters.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "b6c586ab3f307ff7a9b8b3594ec1b5c9",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "indexing/vocab/mkessler-vocab.sty",
|
||||||
|
"source file": "indexing/vocab/vocab.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "c69b7350ab57b062ec42c408cf30ecbb",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lecture-notes/lectures/mkessler-lectures.sty",
|
||||||
|
"source file": "lecture-notes/lectures/lectures.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "12de756cdaf55cb9510085084a6c0be6",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/removed/mkessler-removed.sty",
|
||||||
|
"source file": "wip/removed/removed.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "bdc4b470c0f4f3ddc21c2ebbf80501be",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/code/mkessler-code.sty",
|
||||||
|
"source file": "wip/code/code.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "ccd43b8b097192d79e6dee3a9904a272",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/lang-input/mkessler-lang-input.sty",
|
||||||
|
"source file": "wip/lang-input/lang-input.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "b0593c4e5620465557ae10ad7c050dea",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/restate/mkessler-restate.sty",
|
||||||
|
"source file": "wip/restate/restate.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "f1f3070209a9a0775262ac8c14007b6e",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/bibliography/mkessler-bibliography.sty",
|
||||||
|
"source file": "wip/bibliography/bibliography.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "298338a3ecffa320d4d19b6885737f13",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/gag/mkessler-gag.sty",
|
||||||
|
"source file": "wip/gag/gag.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "b50afc5a5bfabfce6be3e1d802d9d852",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/subproof/mkessler-subproof.sty",
|
||||||
|
"source file": "wip/subproof/subproof.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "4bd597101342feff72c63e34fd142236",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/figures/mkessler-figures.sty",
|
||||||
|
"source file": "wip/figures/figures.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "5a8399b3bc7b6208ab8188a340fb2c53",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/exsheet/mkessler-exsheet.sty",
|
||||||
|
"source file": "wip/exsheet/exsheet.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "21757fc9c7ed670b5f9296ff0828edd2",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "quiver/mkessler-quiver.sty",
|
||||||
|
"source file": "quiver/quiver.pysty",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "55dda8b2de907a11bef1b698352b50ea",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lecture-notes/script/mkessler-script.cls",
|
||||||
|
"source file": "lecture-notes/script/script.pycls",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "669a15fc94e1222274a7625133e3ab62",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "exercises/sheet/mkessler-sheet.cls",
|
||||||
|
"source file": "exercises/sheet/sheet.pycls",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "e3d249089d21d99c24f817712c686357",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/categories/translator-mathematical-categories-dictionary-English.dict",
|
||||||
|
"source file": "math/categories/mathematical-categories.pydict",
|
||||||
|
"build time": "2022/06/27 14:32",
|
||||||
|
"source version": "v2.9-24-g80377fc",
|
||||||
|
"source commit hash": "80377fc7844887fae81a19280a0c96087eba99b0",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "f9f9aae576fe604594a66db7bffac825",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/categories/translator-mathematical-categories-dictionary-German.dict",
|
||||||
|
"source file": "math/categories/mathematical-categories.pydict",
|
||||||
|
"build time": "2022/06/27 14:32",
|
||||||
|
"source version": "v2.9-24-g80377fc",
|
||||||
|
"source commit hash": "80377fc7844887fae81a19280a0c96087eba99b0",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "1bdf8dade83a662c3dc6f9866daf8962",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "environments/refproof/translator-proof-dictionary-English.dict",
|
||||||
|
"source file": "environments/refproof/proof.pydict",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "7d7e8be901315313da48f658980ab691",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "environments/refproof/translator-proof-dictionary-German.dict",
|
||||||
|
"source file": "environments/refproof/proof.pydict",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "5473401c146887c2e17d2f2aab06317f",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "math/categories/mkessler-categories.sty",
|
||||||
|
"source file": "math/categories/categories.pysty3",
|
||||||
|
"build time": "2022/06/27 14:46",
|
||||||
|
"source version": "v2.9-25-ge9f75cd",
|
||||||
|
"source commit hash": "e9f75cd2200d15fad9c02b0a72f34344285b094a",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "5c0f6e9f160bab138140e1ae3850f02a",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "utils/powerset/mkessler-powerset.sty",
|
||||||
|
"source file": "utils/powerset/powerset.pysty3",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "b565662b5c3a69790ab793f3f627d37f",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "indexing/symbindex/mkessler-symbindex.sty",
|
||||||
|
"source file": "indexing/symbindex/symbindex.pysty3",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "c632ef34aebf5c5d781674f4f7d00b65",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "environments/refproof/mkessler-refproof.sty",
|
||||||
|
"source file": "environments/refproof/refproof.pysty3",
|
||||||
|
"build time": "2022/06/27 14:32",
|
||||||
|
"source version": "v2.9-24-g80377fc",
|
||||||
|
"source commit hash": "80377fc7844887fae81a19280a0c96087eba99b0",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "c2ca093a0f88cdb9a44c8a1ba3e30d90",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wip/cache/mkessler-cache.sty",
|
||||||
|
"source file": "wip/cache/cache.pysty3",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "8750b59f5a8f6f9597d7f3554d337780",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "environments/fancythm/fancythm.sty",
|
||||||
|
"source file": "environments/fancythm/fancythm.dtx",
|
||||||
|
"build time": "2022/06/27 14:32",
|
||||||
|
"source version": "v2.9-24-g80377fc",
|
||||||
|
"source commit hash": "80377fc7844887fae81a19280a0c96087eba99b0",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "fe42cebefd1d73bf723bf4a1dc8071e7",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "environments/thmstyle/thmstyle.sty",
|
||||||
|
"source file": "environments/thmstyle/thmstyle.dtx",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "25887354cf8b134a804f11e8c8e05746",
|
||||||
|
"dirty": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "environments/groupthm/groupthm.sty",
|
||||||
|
"source file": "environments/groupthm/groupthm.dtx",
|
||||||
|
"build time": "2022/06/12 15:21",
|
||||||
|
"source version": "v2.9-14-g6545412",
|
||||||
|
"source commit hash": "6545412baf11aa044aabf606c7d44b3941c9fb20",
|
||||||
|
"pytex version": "v1.2.0-31-gc9bb0e8",
|
||||||
|
"pytex commit hash": "c9bb0e87c91beae3e17a829603e4459cf804ec51",
|
||||||
|
"md5sum": "72edca95f60949839b50cb9a5fb0b012",
|
||||||
|
"dirty": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
412
environments/fancythm/fancythm.sty
Normal file
412
environments/fancythm/fancythm.sty
Normal file
|
@ -0,0 +1,412 @@
|
||||||
|
%%
|
||||||
|
%% This is file `fancythm.sty',
|
||||||
|
%% generated with the docstrip utility.
|
||||||
|
%%
|
||||||
|
%% The original source files were:
|
||||||
|
%%
|
||||||
|
%% fancythm.dtx (with options: `package')
|
||||||
|
%%
|
||||||
|
%% IMPORTANT NOTICE:
|
||||||
|
%%
|
||||||
|
%% For the copyright see the source file.
|
||||||
|
%%
|
||||||
|
%% Any modified versions of this file must be renamed
|
||||||
|
%% with new filenames distinct from fancythm.sty.
|
||||||
|
%%
|
||||||
|
%% For distribution of the original source see the terms
|
||||||
|
%% for copying and modification in the file fancythm.dtx.
|
||||||
|
%%
|
||||||
|
%% This generated file may be distributed as long as the
|
||||||
|
%% original source files, as listed above, are part of the
|
||||||
|
%% same distribution. (The sources need not necessarily be
|
||||||
|
%% in the same archive or directory.)
|
||||||
|
%% File: fancytm.dtx
|
||||||
|
\ProvidesExplPackage{fancythm}{2022/01/30}{0.0.2}{Grouped theorems.}
|
||||||
|
\RequirePackage{l3keys2e}
|
||||||
|
\RequirePackage[default styles]{thmstyle}
|
||||||
|
\cs_set_eq:NN \arabic:n \arabic
|
||||||
|
\cs_set_eq:NN \counter_new:n \newcounter
|
||||||
|
\cs_set_eq:NN \counter_within:nn \counterwithin
|
||||||
|
\cs_new:Npn \counter_new:nn #1 #2
|
||||||
|
{
|
||||||
|
\counter_new:n { #1 }
|
||||||
|
\counter_within:nn { #1 } { #2 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_if_exist_p:n #1
|
||||||
|
{
|
||||||
|
\cs_if_exist_p:c { c@ #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_if_exist:nT #1
|
||||||
|
{
|
||||||
|
\cs_if_exist:cT { c@ #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_if_exist:nF #1
|
||||||
|
{
|
||||||
|
\cs_if_exist:cF { c@ #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_if_exist:nTF #1
|
||||||
|
{
|
||||||
|
\cs_if_exist:cTF { c@ #1 }
|
||||||
|
}
|
||||||
|
\cs_set_eq:Nc \counter_undefined_error:n { @nocounterr }
|
||||||
|
\cs_new:Npn \counter_ensure_exist:n #1
|
||||||
|
{
|
||||||
|
\counter_if_exist:nF { #1 }
|
||||||
|
{
|
||||||
|
\counter_undefined_error:n { #1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_the:n #1
|
||||||
|
{
|
||||||
|
\use:c { the #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_set_the:nn #1 #2
|
||||||
|
{
|
||||||
|
\counter_ensure_exist:n { #1 }
|
||||||
|
\exp_args:Nc \renewcommand { the #1 } { #2 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_sub:nn #1 #2
|
||||||
|
{
|
||||||
|
\counter_within:nn { #1 } { #2 }
|
||||||
|
\counter_set_the:nn { #1 }
|
||||||
|
{
|
||||||
|
\counter_the:n { #2 } . \arabic:n { #1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_new_sub:nn #1 #2
|
||||||
|
{
|
||||||
|
\counter_new:n { #1 }
|
||||||
|
\counter_sub:nn { #1 } { #2 }
|
||||||
|
}
|
||||||
|
|
||||||
|
\cs_new:Npn \__fancythm_counter_sub_if_exist:n #1
|
||||||
|
{
|
||||||
|
\counter_if_exist:nT { #1 }
|
||||||
|
{
|
||||||
|
\counter_new_sub:nn { in #1 } { #1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \counter_alias:nn #1 % trailing #2
|
||||||
|
{
|
||||||
|
\cs_undefine:c { c@ #1 }
|
||||||
|
\use:c { @counteralias } { #1 } % implicit #2
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \counter_alias:nn { n x }
|
||||||
|
\counter_new:n { indocument }
|
||||||
|
\__fancythm_counter_sub_if_exist:n { section }
|
||||||
|
\__fancythm_counter_sub_if_exist:n { subsection }
|
||||||
|
\__fancythm_counter_sub_if_exist:n { chapter }
|
||||||
|
\__fancythm_counter_sub_if_exist:n { part }
|
||||||
|
\counter_alias:nn { toplevel } { indocument }
|
||||||
|
\counter_new_sub:nn { sublevel } { toplevel }
|
||||||
|
\counter_new_sub:nn { subsublevel } { sublevel }
|
||||||
|
\counter_new_sub:nn { subsubsublevel } { subsublevel }
|
||||||
|
\str_new:N \g__fancythm_style_str
|
||||||
|
\bool_new:N \g__fancythm_translator_bool
|
||||||
|
\bool_new:N \g__fancythm_generate_defaults_bool
|
||||||
|
\tl_new:N \l__fancythm_key_name_tl
|
||||||
|
\tl_new:N \l__fancythm_key_mdframed_tl
|
||||||
|
\tl_new:N \l__fancythm_key_style_tl
|
||||||
|
\clist_new:N \l__fancythm_key_group_clist
|
||||||
|
\clist_new:N \l__fancythm_key_thmtools_clist
|
||||||
|
\tl_new:N \l__fancythm_name_tl
|
||||||
|
\clist_new:N \l__fancythm_thmtools_clist
|
||||||
|
\clist_new:N \l__fancythm_group_clist
|
||||||
|
\clist_new:N \g__fancythm_groupthm_option_clist
|
||||||
|
\keys_define:nn { fancythm }
|
||||||
|
{
|
||||||
|
translator .bool_set:N = \g__fancythm_translator_bool ,
|
||||||
|
translator .default:n = { true } ,
|
||||||
|
generate defaults .bool_set:N = \g__fancythm_generate_defaults_bool ,
|
||||||
|
generate defaults .default:n = { true } ,
|
||||||
|
number in .choices:nn =
|
||||||
|
{ document, section, subsection, chapter, part }
|
||||||
|
{
|
||||||
|
\counter_alias:nx { toplevel } { in \tl_use:N \l_keys_choice_tl }
|
||||||
|
} ,
|
||||||
|
number in .default:n = { document } ,
|
||||||
|
style .choices:nn =
|
||||||
|
{ fancy, plain, classic }
|
||||||
|
{
|
||||||
|
\str_set:Nn \g__fancythm_style_str { \tl_use:N \l_keys_choice_tl }
|
||||||
|
} ,
|
||||||
|
style .default:n = { fancy } ,
|
||||||
|
cache .code:n =
|
||||||
|
{
|
||||||
|
\clist_put_right:Nn \g__fancythm_groupthm_option_clist { cache = #1 }
|
||||||
|
} ,
|
||||||
|
cache .default:n = { true } ,
|
||||||
|
cache version .code:n =
|
||||||
|
{
|
||||||
|
\clist_put_right:Nn \g__fancythm_groupthm_option_clist { cache version = #1 }
|
||||||
|
} ,
|
||||||
|
cache version .default:n = { 0 } ,
|
||||||
|
}
|
||||||
|
\keys_define:nn { fancythm / fancytheorem }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l__fancythm_key_name_tl ,
|
||||||
|
name .default:n = \c_novalue_tl ,
|
||||||
|
mdframed .tl_set:N = \l__fancythm_key_mdframed_tl ,
|
||||||
|
mdframed .default:n = \c_novalue_tl ,
|
||||||
|
style .tl_set:N = \l__fancythm_key_style_tl ,
|
||||||
|
style .default:n = \c_novalue_tl ,
|
||||||
|
group .clist_set:N = \l__fancythm_key_group_clist ,
|
||||||
|
group .default:n = {} ,
|
||||||
|
thmtools .clist_set:N = \l__fancythm_key_thmtools_clist ,
|
||||||
|
thmtools .default:n = {} ,
|
||||||
|
}
|
||||||
|
\keys_set:nn { fancythm } { translator, generate defaults, number in, style }
|
||||||
|
\ProcessKeysOptions{ fancythm }
|
||||||
|
|
||||||
|
\cs_new:Npn \__fancythm_require_package:nn #1
|
||||||
|
{
|
||||||
|
\RequirePackage [ #1 ]
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__fancythm_require_package:nn { V n }
|
||||||
|
\__fancythm_require_package:Vn \g__fancythm_groupthm_option_clist { groupthm }
|
||||||
|
\bool_if:NTF \g__fancythm_translator_bool
|
||||||
|
{
|
||||||
|
\RequirePackage{translator}
|
||||||
|
\usedictionary{translator-environment-names}
|
||||||
|
\cs_set_eq:NN \__fancythm_translate:n \translate
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\cs_set_eq:NN \__fancythm_translate:n \use:n
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__fancythm_set_normalized_keys:nn #1 #2
|
||||||
|
{
|
||||||
|
\keys_set:nn { fancythm / fancytheorem } { name, mdframed, style, group, thmtools }
|
||||||
|
\keys_set:nn { fancythm / fancytheorem } { #1 }
|
||||||
|
\clist_set_eq:NN \l__fancythm_group_clist \l__fancythm_key_group_clist
|
||||||
|
\clist_set_eq:NN \l__fancythm_thmtools_clist \l__fancythm_key_thmtools_clist
|
||||||
|
\tl_if_eq:NnF \l__fancythm_key_mdframed_tl { \c_novalue_tl }
|
||||||
|
{
|
||||||
|
\clist_put_right:Nx \l__fancythm_thmtools_clist
|
||||||
|
{
|
||||||
|
mdframed = { style = \tl_use:N \l__fancythm_key_mdframed_tl }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\tl_if_eq:NnF \l__fancythm_key_style_tl { \c_novalue_tl }
|
||||||
|
{
|
||||||
|
\clist_put_right:Nx \l__fancythm_thmtools_clist
|
||||||
|
{
|
||||||
|
style = \tl_use:N \l__fancythm_key_style_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\tl_if_eq:NnTF \l__fancythm_key_name_tl { \c_novalue_tl }
|
||||||
|
{
|
||||||
|
\tl_set:Nx \l__fancythm_name_tl
|
||||||
|
{
|
||||||
|
\text_titlecase_first:n { \tl_trim_spaces:n { #2 } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_set_eq:NN \l__fancythm_name_tl \l__fancythm_key_name_tl
|
||||||
|
}
|
||||||
|
\tl_set:Nx \l__fancythm_name_tl
|
||||||
|
{
|
||||||
|
\exp_not:N \csname __fancythm_translate:n \exp_not:N \endcsname { \tl_use:N \l__fancythm_name_tl }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__fancythm_wrap_multiple:nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\cs_set:Npn \__fancythm_map_aux:n ##1
|
||||||
|
{
|
||||||
|
\cs_new:cn { #2 }
|
||||||
|
{
|
||||||
|
#3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\clist_map_function:nN { #1 } \__fancythm_map_aux:n
|
||||||
|
}
|
||||||
|
\__fancythm_wrap_multiple:nnn
|
||||||
|
{ new, provide }
|
||||||
|
{ fancythm_#1_theorem:nnnn }
|
||||||
|
{
|
||||||
|
\use:c { groupthm_#1_family:nnnnn } { ##1 } { dagger, star, nobraces } { ##3 } { ##4 } { ##2 }
|
||||||
|
\use:c { groupthm_#1_family_options:nnnn }
|
||||||
|
{ ##1 }
|
||||||
|
{ !s !t+ !t-}
|
||||||
|
{
|
||||||
|
\IfBooleanT { ####1 }
|
||||||
|
{
|
||||||
|
\AddTheoremToGroup { star }
|
||||||
|
}
|
||||||
|
\IfBooleanT { ####2 }
|
||||||
|
{
|
||||||
|
\AddTheoremToGroup { dagger }
|
||||||
|
}
|
||||||
|
\IfBooleanT { ####3 }
|
||||||
|
{
|
||||||
|
\AddTheoremToGroup { nobraces }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{ ##2 }
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \fancythm_new_theorem:nnnn { n V V V }
|
||||||
|
\cs_generate_variant:Nn \fancythm_provide_theorem:nnnn { n V V V }
|
||||||
|
\__fancythm_wrap_multiple:nnn
|
||||||
|
{ new, provide }
|
||||||
|
{ fancythm_#1_theorem:nn }
|
||||||
|
{
|
||||||
|
\__fancythm_set_normalized_keys:nn { ##1 } { ##2 }
|
||||||
|
\use:c { fancythm_#1_theorem:nVVV }
|
||||||
|
{ ##2 }
|
||||||
|
\l__fancythm_group_clist
|
||||||
|
\l__fancythm_name_tl
|
||||||
|
\l__fancythm_thmtools_clist
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__fancythm_new_document_command:Nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\NewDocumentCommand { #1 } { #2 } { #3 }
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__fancythm_new_document_command:Nnn { c n n }
|
||||||
|
\cs_new:Npn \__fancythm_wrap_multiple_document:nnnn #1 #2 #3 #4
|
||||||
|
{
|
||||||
|
\cs_set:Npn \__fancythm_map_aux:n ##1
|
||||||
|
{
|
||||||
|
\cs_set:Nn \__fancythm_Declarator: { \text_titlecase_first:n { ##1 } }
|
||||||
|
\__fancythm_new_document_command:cnn { #2 } { #3 } { #4 }
|
||||||
|
}
|
||||||
|
\clist_map_function:nN { #1 } \__fancythm_map_aux:n
|
||||||
|
}
|
||||||
|
\__fancythm_wrap_multiple_document:nnnn
|
||||||
|
{ new, provide }
|
||||||
|
{ \__fancythm_Declarator: FancyTheorem }
|
||||||
|
{ O{} m }
|
||||||
|
{
|
||||||
|
\use:c { fancythm_#1_theorem:nn } { ##1 } { ##2 }
|
||||||
|
}
|
||||||
|
\declaretheoremstyle[notebraces={{}{}}]{nobraces}
|
||||||
|
\groupthm_new_group:nnnnn { star } { } { * } { } { }
|
||||||
|
\groupthm_new_group:nnnnn { dagger } { } { $^{\dagger}$ } { } { }
|
||||||
|
\groupthm_new_group:nnnnn { big } { } { } { } { sibling = toplevel }
|
||||||
|
\groupthm_new_group:nnnnn { small } { } { } { } { sibling = sublevel }
|
||||||
|
\groupthm_new_group:nnnnn { tiny } { } { } { } { numbered = no }
|
||||||
|
\groupthm_new_group:nnnnn { custom } { } { } { } { sibling = sublevel }
|
||||||
|
\groupthm_new_group:nnnnn { nobraces } { } { } { } { style = nobraces }
|
||||||
|
\groupthm_add_parent:nn { star } { custom }
|
||||||
|
\groupthm_add_parent:nn { dagger } { custom }
|
||||||
|
\DeclareTheoremGroupRule [ suffix ] { dagger } { higher } { star }
|
||||||
|
\DeclareTheoremGroupRule { tiny } { higher } { small }
|
||||||
|
\DeclareTheoremGroupRule { tiny } { higher } { big }
|
||||||
|
\DeclareTheoremGroupRule { tiny } { higher } { custom }
|
||||||
|
\DeclareTheoremGroupRule { small } { higher } { big }
|
||||||
|
\DeclareTheoremGroupRule { custom } { higher } { big }
|
||||||
|
\cs_new:Npn \fancythm_add_provided_theorem_to_group:nn #1 #2
|
||||||
|
{
|
||||||
|
\cs_if_exist:cF { __fancythm_provided_theorem__#1__group_clist }
|
||||||
|
{
|
||||||
|
\clist_new:c { __fancythm_provided_theorem__#1__group_clist }
|
||||||
|
}
|
||||||
|
\clist_put_left:cn { __fancythm_provided_theorem__#1__group_clist } { #2 }
|
||||||
|
}
|
||||||
|
\NewDocumentCommand { \AddProvidedFancyTheoremToGroup } { m m }
|
||||||
|
{
|
||||||
|
\fancythm_add_provided_theorem_to_group:nn { #1 } { #2 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__fancythm_provide_package_theorem:nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\__fancythm_set_normalized_keys:nn { #1 } { #2 }
|
||||||
|
\cs_if_exist:cT { __fancythm_provided_theorem__#2__group_clist }
|
||||||
|
{
|
||||||
|
\clist_concat:ccc
|
||||||
|
{ l__fancythm_group_clist }
|
||||||
|
{ __fancythm_provided_theorem__#2__group_clist }
|
||||||
|
{ l__fancythm_group_clist }
|
||||||
|
}
|
||||||
|
\clist_if_in:NnF \l__fancythm_group_clist { big }
|
||||||
|
{
|
||||||
|
\clist_if_in:NnF \l__fancythm_group_clist { small }
|
||||||
|
{
|
||||||
|
\clist_if_in:NnF \l__fancythm_group_clist { tiny }
|
||||||
|
{
|
||||||
|
\clist_put_right:Nn \l__fancythm_group_clist { #3 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\fancythm_provide_theorem:nVVV
|
||||||
|
{ #2 }
|
||||||
|
\l__fancythm_group_clist
|
||||||
|
\l__fancythm_name_tl
|
||||||
|
\l__fancythm_thmtools_clist
|
||||||
|
}
|
||||||
|
\cs_new:Npn \fancythm_provide_big_theorem:nn #1 #2
|
||||||
|
{
|
||||||
|
\__fancythm_provide_package_theorem:nnn { #1 } { #2 } { big }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \fancythm_provide_small_theorem:nn #1 #2
|
||||||
|
{
|
||||||
|
\__fancythm_provide_package_theorem:nnn { #1 } { #2 } { small }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \fancythm_provide_tiny_theorem:nn #1 #2
|
||||||
|
{
|
||||||
|
\__fancythm_provide_package_theorem:nnn { #1 } { #2 } { tiny }
|
||||||
|
}
|
||||||
|
\bool_if:NT \g__fancythm_generate_defaults_bool
|
||||||
|
{
|
||||||
|
\AddToHook { begindocument / before } [ fancythm ]
|
||||||
|
{
|
||||||
|
\fancythm_provide_big_theorem:nn { style = thmredmarginandfill } { theorem }
|
||||||
|
\fancythm_provide_big_theorem:nn { style = thmredmarginandfill } { proposition }
|
||||||
|
\fancythm_provide_big_theorem:nn { style = thmredmarginandfill } { corollary }
|
||||||
|
\fancythm_provide_big_theorem:nn { style = thmbluemarginandfill } { definition }
|
||||||
|
\fancythm_provide_big_theorem:nn { style = thmorangemarginandfill} { lemma }
|
||||||
|
\fancythm_provide_big_theorem:nn { style = thmgreenmargin } { example }
|
||||||
|
\fancythm_provide_big_theorem:nn
|
||||||
|
{
|
||||||
|
style = thmredmarginbluefill,
|
||||||
|
name = Theorem ~ and ~ Definition
|
||||||
|
} { theoremdef }
|
||||||
|
\fancythm_provide_big_theorem:nn
|
||||||
|
{
|
||||||
|
style = thmredmarginbluefill,
|
||||||
|
name = Proposition ~ and ~ Definition
|
||||||
|
} { propositiondef }
|
||||||
|
\fancythm_provide_big_theorem:nn
|
||||||
|
{
|
||||||
|
style = thmorangemarginbluefill,
|
||||||
|
name = Lemma ~ and ~ Definition
|
||||||
|
} { propositiondef }
|
||||||
|
\fancythm_provide_small_theorem:nn { style = thmvioletmargin } { notation }
|
||||||
|
\fancythm_provide_small_theorem:nn { style = thmyellowmargin } { remark }
|
||||||
|
\fancythm_provide_small_theorem:nn { style = thmgoldmargin } { praise }
|
||||||
|
\fancythm_provide_small_theorem:nn { style = thmblackmarginandfill } { question }
|
||||||
|
\fancythm_provide_small_theorem:nn { style = thmblackmargin } { orga }
|
||||||
|
\fancythm_provide_small_theorem:nn { style = thmredmargin } { fact }
|
||||||
|
\fancythm_provide_small_theorem:nn
|
||||||
|
{
|
||||||
|
style = thmyellowmargin,
|
||||||
|
name = Trivial ~ Nonsense
|
||||||
|
} { trivial }
|
||||||
|
\fancythm_provide_small_theorem:nn
|
||||||
|
{
|
||||||
|
style = thmvioletmargin,
|
||||||
|
name = Abuse ~ of ~ Notation
|
||||||
|
} { abuse }
|
||||||
|
\fancythm_provide_small_theorem:nn
|
||||||
|
{
|
||||||
|
style = thmyellowmargin,
|
||||||
|
name = Oral ~ remark
|
||||||
|
} { oral }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { variant }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { assumption }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { note }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { warning }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { goal }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { strategy }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { problem }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { info }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { observe }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { property }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { intuition }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { recall }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { idea }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { exercise }
|
||||||
|
\fancythm_provide_tiny_theorem:nn { } { reminder }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\DeclareHookRule { begindocument / before } { groupthm } { after } { fancythm }
|
||||||
|
\endinput
|
||||||
|
%%
|
||||||
|
%% End of file `fancythm.sty'.
|
887
environments/groupthm/groupthm.sty
Normal file
887
environments/groupthm/groupthm.sty
Normal file
|
@ -0,0 +1,887 @@
|
||||||
|
%%
|
||||||
|
%% This is file `groupthm.sty',
|
||||||
|
%% generated with the docstrip utility.
|
||||||
|
%%
|
||||||
|
%% The original source files were:
|
||||||
|
%%
|
||||||
|
%% groupthm.dtx (with options: `package')
|
||||||
|
%%
|
||||||
|
%% IMPORTANT NOTICE:
|
||||||
|
%%
|
||||||
|
%% For the copyright see the source file.
|
||||||
|
%%
|
||||||
|
%% Any modified versions of this file must be renamed
|
||||||
|
%% with new filenames distinct from groupthm.sty.
|
||||||
|
%%
|
||||||
|
%% For distribution of the original source see the terms
|
||||||
|
%% for copying and modification in the file groupthm.dtx.
|
||||||
|
%%
|
||||||
|
%% This generated file may be distributed as long as the
|
||||||
|
%% original source files, as listed above, are part of the
|
||||||
|
%% same distribution. (The sources need not necessarily be
|
||||||
|
%% in the same archive or directory.)
|
||||||
|
%% File: groupthm.dtx
|
||||||
|
\ProvidesExplPackage{groupthm}{2022/02/02}{0.0.2}{Grouped theorems.}
|
||||||
|
\RequirePackage{amsthm}
|
||||||
|
\RequirePackage{thmtools}
|
||||||
|
\RequirePackage{l3keys2e}
|
||||||
|
\cs_new:Npn \__groupthm_thmtools_declare_theorem:nn #1 #2
|
||||||
|
{
|
||||||
|
\tl_log:n { Declaring ~ thmtools ~ theorem ~ #2 }
|
||||||
|
\declaretheorem [ #1 ] { #2 }
|
||||||
|
\__groupthm_cache:n
|
||||||
|
{
|
||||||
|
\csname __groupthm_thmtools_declare_theorem:nn \endcsname { #1 } { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_thmtools_declare_theorem:nn { V n }
|
||||||
|
\cs_new:Npn \__groupthm_hook_gset_rule_foreach:nNnn #1 #2 #3 #4
|
||||||
|
{
|
||||||
|
\cs_set:Npn \__groupthm_map_aux:n ##1
|
||||||
|
{
|
||||||
|
\hook_gset_rule:nnnn { #1 } { ##1 } { #3 } { #4 }
|
||||||
|
}
|
||||||
|
\clist_map_function:NN #2 \__groupthm_map_aux:n
|
||||||
|
}
|
||||||
|
\msg_new:nnn { groupthm } { unknown ~ group }
|
||||||
|
{
|
||||||
|
Unknown ~ group ~ '#1' ~ supplied ~ \msg_line_context:
|
||||||
|
}
|
||||||
|
\msg_new:nnn { groupthm } { unknown ~ key }
|
||||||
|
{
|
||||||
|
Unknown ~ key ~ '#1' ~ supplied ~ \msg_line_context:
|
||||||
|
}
|
||||||
|
\msg_new:nnn { groupthm } { wrong ~ definition }
|
||||||
|
{
|
||||||
|
Bad ~ definition ~ of ~ #1 ~ '#2' ~ \msg_line_context:, ~ #1 ~ is ~ #3 ~ defined.
|
||||||
|
}
|
||||||
|
\msg_new:nnn { groupthm } { misuse ~ add ~ theorem ~ to ~ group }
|
||||||
|
{
|
||||||
|
Bad ~ usage ~ of ~ 'AddTheoremToGroup' ~ macro ~ outside ~ theorem ~
|
||||||
|
family ~ options ~ \msg_line_context:
|
||||||
|
}
|
||||||
|
\msg_new:nnnn { groupthm } { undefined ~ theorem ~ variant }
|
||||||
|
{
|
||||||
|
Bad ~ call ~ of ~ theorem ~ variant ~ of ~ '#1' ~ \msg_line_context:
|
||||||
|
}
|
||||||
|
{
|
||||||
|
You ~ wanted ~ to ~ call ~ the ~ variant ~ with ~ group(s) ~
|
||||||
|
'#2' ~ of ~ theorem ~ family ~ '#1', ~ but ~ it ~ has ~ not ~ been ~
|
||||||
|
generated ~ yet. ~
|
||||||
|
Probably ~ you ~ forgot ~ this. ~
|
||||||
|
\msg_see_documentation_text:n { groupthm }
|
||||||
|
}
|
||||||
|
\hook_new:n { __groupthm/prefix }
|
||||||
|
\hook_new:n { __groupthm/suffix }
|
||||||
|
\hook_new:n { __groupthm/mapname }
|
||||||
|
\hook_new:n { __groupthm/thmtools }
|
||||||
|
\hook_new:n { __groupthm/groupsort }
|
||||||
|
\cs_generate_variant:Nn \hook_gset_rule:nnnn { n n V n }
|
||||||
|
\bool_new:N \l__groupthm_key_starred_version_bool
|
||||||
|
\tl_new:N \l__groupthm_key_prefix_tl
|
||||||
|
\tl_new:N \l__groupthm_key_name_tl
|
||||||
|
\tl_new:N \l__groupthm_key_suffix_tl
|
||||||
|
\clist_new:N \l__groupthm_key_group_clist
|
||||||
|
\clist_new:N \l__groupthm_key_mapname_clist
|
||||||
|
\clist_new:N \l__groupthm_key_thmtools_clist
|
||||||
|
\tl_new:N \l__groupthm_prefix_tl
|
||||||
|
\tl_new:N \l__groupthm_name_tl
|
||||||
|
\tl_new:N \l__groupthm_suffix_tl
|
||||||
|
\clist_new:N \l__groupthm_mapname_clist
|
||||||
|
\clist_new:N \l__groupthm_thmtools_clist
|
||||||
|
\clist_new:N \l__groupthm_group_clist
|
||||||
|
\clist_new:N \g__groupthm_defined_groups_clist
|
||||||
|
\bool_new:N \l__groupthm_in_family_options_environment_bool
|
||||||
|
\int_new:N \g__groupthm_append_groups_int
|
||||||
|
\bool_new:N \g__groupthm_cache_bool
|
||||||
|
\int_new:N \g__groupthm_cache_version_aux_int
|
||||||
|
\int_new:N \g__groupthm_cache_version_document_int
|
||||||
|
\int_set:Nn \g__groupthm_cache_version_aux_int { -1 }
|
||||||
|
\tl_new:N \g__groupthm_lazy_document_tl
|
||||||
|
\tl_new:N \g__groupthm_lazy_auxfile_tl
|
||||||
|
\clist_new:N \g__groupthm_dump_auxfile_clist
|
||||||
|
\clist_new:N \g__groupthm_dump_cache_clist
|
||||||
|
\keys_define:nn { groupthm }
|
||||||
|
{
|
||||||
|
cache .bool_set:N = \g__groupthm_cache_bool,
|
||||||
|
cache .default:n = { true },
|
||||||
|
__cache version__ .int_set:N = \g__groupthm_cache_version_document_int,
|
||||||
|
cache version .meta:nn = { groupthm } { cache = true, __cache version__ = #1 },
|
||||||
|
cache version .default:n = { 0 },
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / theorem ~ group }
|
||||||
|
{
|
||||||
|
prefix .tl_set:N = \l__groupthm_key_prefix_tl,
|
||||||
|
prefix .default:n = \c_empty_tl,
|
||||||
|
suffix .tl_set:N = \l__groupthm_key_suffix_tl,
|
||||||
|
suffix .default:n = \c_empty_tl,
|
||||||
|
suffix .groups:n = { theoremgroup },
|
||||||
|
map ~ name .clist_set:N = \l__groupthm_mapname_clist,
|
||||||
|
map ~ name .default:n = {},
|
||||||
|
map ~ name .groups:n = { theoremgroup },
|
||||||
|
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnx { groupthm } { unknown ~ key } { \str_use:N \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / grouped ~ theorem }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l__groupthm_key_name_tl,
|
||||||
|
name .default:n = \c_novalue_tl,
|
||||||
|
group .clist_set:N = \l__groupthm_key_group_clist,
|
||||||
|
group .default:n = {},
|
||||||
|
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
starred ~ version .bool_set:N = \l__groupthm_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnx { groupthm } { unknown ~ key } { \str_use:N \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / theorem ~ family }
|
||||||
|
{
|
||||||
|
name .tl_set:N = \l__groupthm_key_name_tl,
|
||||||
|
name .default:n = \c_novalue_tl,
|
||||||
|
group .clist_set:N = \l__groupthm_key_group_clist,
|
||||||
|
group .default:n = {},
|
||||||
|
thmtools .clist_set:N = \l__groupthm_key_thmtools_clist,
|
||||||
|
thmtools .default:n = {},
|
||||||
|
starred ~ version .bool_set:N = \l__groupthm_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnx { groupthm } { unknown ~ key } { \str_use:N \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\keys_define:nn { groupthm / theorem ~ family ~ options }
|
||||||
|
{
|
||||||
|
starred ~ version .bool_set:N = \l__groupthm_key_starred_version_bool,
|
||||||
|
starred ~ version .default:n = { true },
|
||||||
|
unknown .code:n =
|
||||||
|
\msg_error:nnx { groupthm } { unknown ~ key } { \str_use:N \l_keys_key_str }
|
||||||
|
}
|
||||||
|
\ProcessKeysOptions { groupthm }
|
||||||
|
\cs_new:Npn \__groupthm_set_normalized_keys:nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\keys_set:nn { groupthm / theorem ~ group }
|
||||||
|
{ prefix, suffix, thmtools, map ~ name }
|
||||||
|
\keys_set:nn { groupthm / grouped ~ theorem }
|
||||||
|
{ name, group, thmtools, starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / theorem ~ family }
|
||||||
|
{ name, group, thmtools, starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / #2 } { #1 }
|
||||||
|
\tl_if_eq:NnTF \l__groupthm_key_name_tl { \c_novalue_tl }
|
||||||
|
{
|
||||||
|
\tl_set:Nx \l__groupthm_name_tl
|
||||||
|
{
|
||||||
|
\text_titlecase_first:n {#3}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_set_eq:NN \l__groupthm_name_tl \l__groupthm_key_name_tl
|
||||||
|
}
|
||||||
|
\bool_set_eq:NN \l__groupthm_starred_version_bool \l__groupthm_key_starred_version_bool
|
||||||
|
\tl_set_eq:NN \l__groupthm_prefix_tl \l__groupthm_key_prefix_tl
|
||||||
|
\tl_set_eq:NN \l__groupthm_suffix_tl \l__groupthm_key_suffix_tl
|
||||||
|
\clist_set_eq:NN \l__groupthm_group_clist \l__groupthm_key_group_clist
|
||||||
|
\clist_set_eq:NN \l__groupthm_mapname_clist \l__groupthm_key_mapname_clist
|
||||||
|
\clist_set_eq:NN \l__groupthm_thmtools_clist \l__groupthm_key_thmtools_clist
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_add_to_group_ordering:n #1
|
||||||
|
{
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ __groupthm/groupsort }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ before }
|
||||||
|
{ #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_remove_from_group_ordering:n #1
|
||||||
|
{
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ __groupthm/groupsort }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ unrelated }
|
||||||
|
{ #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_add_to_sort_hook:n #1
|
||||||
|
{
|
||||||
|
\hook_gput_code:nnn { __groupthm/groupsort }
|
||||||
|
{ #1 }
|
||||||
|
{
|
||||||
|
\clist_put_left:Nn \l__groupthm_group_clist { #1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_sort_group_names:
|
||||||
|
{
|
||||||
|
\hook_gremove_code:nn { __groupthm/groupsort }{*}
|
||||||
|
\clist_map_function:NN \l__groupthm_group_clist \__groupthm_add_to_sort_hook:n
|
||||||
|
\clist_clear:N \l__groupthm_group_clist
|
||||||
|
\hook_use:n { __groupthm/groupsort }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_define_group:nnnnn #1#2#3#4#5
|
||||||
|
{
|
||||||
|
\cs_new:cpn { __groupthm_use_group__#1: }
|
||||||
|
{
|
||||||
|
\hook_gput_code:nnn { __groupthm/prefix } { #1 }
|
||||||
|
{
|
||||||
|
\tl_put_left:Nx \l__groupthm_prefix_tl { #2 }
|
||||||
|
}
|
||||||
|
\hook_gput_code:nnn { __groupthm/suffix } { #1 }
|
||||||
|
{
|
||||||
|
\tl_put_right:Nx \l__groupthm_suffix_tl { #3 }
|
||||||
|
}
|
||||||
|
\hook_gput_code:nnn { __groupthm/mapname } { #1 }
|
||||||
|
{
|
||||||
|
\clist_put_right:Nn \l__groupthm_mapname_clist { #4 }
|
||||||
|
}
|
||||||
|
\hook_gput_code:nnn { __groupthm/thmtools } { #1 }
|
||||||
|
{
|
||||||
|
\clist_put_right:Nn \l__groupthm_thmtools_clist { #5 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\__groupthm_add_to_group_ordering:n { #1 }
|
||||||
|
\clist_new:c { g__groupthm_parents_group__#1__clist }
|
||||||
|
\hook_gset_rule:nnnn { ?? } { all } { before } { #1 }
|
||||||
|
\hook_gset_rule:nnnn { ?? } { unnumbered } { after } { #1 }
|
||||||
|
\hook_gset_rule:nnnn { ?? } { starred } { after } { #1 }
|
||||||
|
\clist_gput_left:Nn \g__groupthm_defined_groups_clist { #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_undefine_group:n #1
|
||||||
|
{
|
||||||
|
\tl_log:n { Undefining ~ theorem ~ group ~ '#1' }
|
||||||
|
\cs_undefine:c { __groupthm_use_group__#1: }
|
||||||
|
\hook_gremove_code:nn { __groupthm/prefix } { #1 }
|
||||||
|
\hook_gremove_code:nn { __groupthm/suffix } { #1 }
|
||||||
|
\hook_gremove_code:nn { __groupthm/mapname } { #1 }
|
||||||
|
\hook_gremove_code:nn { __groupthm/thmtools } { #1 }
|
||||||
|
\clist_gremove_all:Nn \g__groupthm_defined_groups_clist { #1 }
|
||||||
|
\cs_undefine:c { g__groupthm_parents_group__#1__clist }
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ ?? }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ unrelated }
|
||||||
|
{ #1 }
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ __groupthm/prefix }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ unrelated }
|
||||||
|
{ #1 }
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ __groupthm/suffix }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ unrelated }
|
||||||
|
{ #1 }
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ __groupthm/mapname }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ unrelated }
|
||||||
|
{ #1 }
|
||||||
|
\__groupthm_hook_gset_rule_foreach:nNnn
|
||||||
|
{ __groupthm/thmtools }
|
||||||
|
\g__groupthm_defined_groups_clist
|
||||||
|
{ unrelated }
|
||||||
|
{ #1 }
|
||||||
|
\__groupthm_remove_from_group_ordering:n { #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_define:nnnNNNn #1 #2 #3 #4 #5 #6 #7
|
||||||
|
{
|
||||||
|
\bool_if:nT
|
||||||
|
{
|
||||||
|
\str_if_eq_p:nn { #1 } { new }
|
||||||
|
&&
|
||||||
|
\cs_if_exist_p:N #4
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_log:n { Wrong ~ 'new' ~ definition ~ of ~ #2 ~ '#3' ~ detected. }
|
||||||
|
\msg_error:nnnnn { groupthm } { wrong ~ definition }
|
||||||
|
{ #2 } { #3 } { already }
|
||||||
|
}
|
||||||
|
\bool_if:nT
|
||||||
|
{
|
||||||
|
\str_if_eq_p:nn { #1 } { renew }
|
||||||
|
&&
|
||||||
|
! \cs_if_exist_p:N #4
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_log:n { Wrong ~ 'renew' ~ definition ~ of ~ #2 ~ '#3' ~ detected. }
|
||||||
|
\msg_error:nnnnn { groupthm } { wrong ~ definition }
|
||||||
|
{ #2 } { #3 } { not }
|
||||||
|
}
|
||||||
|
\bool_if:nT
|
||||||
|
{
|
||||||
|
(
|
||||||
|
\str_if_eq_p:nn { #1 } { declare } ||
|
||||||
|
\str_if_eq_p:nn { #1 } { renew }
|
||||||
|
) &&
|
||||||
|
\cs_if_exist_p:N #4
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_log:n { Removing ~ definition ~ of ~ #2 ~ '#3'. }
|
||||||
|
\tl_log:n { Declarator ~ was ~ #1. }
|
||||||
|
#5 { #3 }
|
||||||
|
}
|
||||||
|
\bool_if:nTF
|
||||||
|
{
|
||||||
|
\cs_if_exist_p:N #4
|
||||||
|
&&
|
||||||
|
\str_if_eq_p:nn { #1 } { provide }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_log:n { Providing ~ #2 ~ '#3' ~ skipped: ~ '#3' ~ already ~ defined. }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_log:n { Defining ~ #2 ~ '#3'. }
|
||||||
|
#6 #7
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_define:nnnNNNn { n n n c N N n }
|
||||||
|
\cs_new:Npn \__groupthm_define_multiple:nnnNNnn #1 #2 #3 #4 #5 #6 #7
|
||||||
|
{
|
||||||
|
\cs_set:Npn \__groupthm_map_aux:n ##1
|
||||||
|
{
|
||||||
|
\cs_new:cn { #6 }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\__groupthm_define:nnncNNn
|
||||||
|
{ ##1 }
|
||||||
|
{ #2 }
|
||||||
|
{ ####1 }
|
||||||
|
{ #3 }
|
||||||
|
#4
|
||||||
|
#5
|
||||||
|
{ #7 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\clist_map_function:nN { #1 } \__groupthm_map_aux:n
|
||||||
|
}
|
||||||
|
\__groupthm_define_multiple:nnnNNnn
|
||||||
|
{ new, renew, provide, declare }
|
||||||
|
{ theorem group }
|
||||||
|
{ __groupthm_use_group__##1: }
|
||||||
|
\__groupthm_undefine_group:n
|
||||||
|
\__groupthm_define_group:nnnnn
|
||||||
|
{ groupthm_#1_group:nnnnn }
|
||||||
|
{ { ##1 } { ##2 } { ##3 } { ##4 } { ##5 } }
|
||||||
|
\cs_generate_variant:Nn \groupthm_new_group:nnnnn { n V V V V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_renew_group:nnnnn { n V V V V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_provide_group:nnnnn { n V V V V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_declare_group:nnnnn { n V V V V }
|
||||||
|
\cs_new:Npn \__groupthm_wrap_multiple:nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\cs_set:Npn \__groupthm_map_aux:n ##1
|
||||||
|
{
|
||||||
|
\cs_new:cn { #2 }
|
||||||
|
{
|
||||||
|
#3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\clist_map_function:nN { #1 } \__groupthm_map_aux:n
|
||||||
|
}
|
||||||
|
\__groupthm_wrap_multiple:nnn
|
||||||
|
{ new, renew, provide, declare }
|
||||||
|
{ groupthm_#1_group:nn }
|
||||||
|
{
|
||||||
|
\__groupthm_set_normalized_keys:nnn { ##1 } { theorem ~ group } { ##2 }
|
||||||
|
\use:c { groupthm_#1_group:nVVVV }
|
||||||
|
{ ##2 }
|
||||||
|
\l__groupthm_prefix_tl
|
||||||
|
\l__groupthm_suffix_tl
|
||||||
|
\l__groupthm_mapname_clist
|
||||||
|
\l__groupthm_thmtools_clist
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \groupthm_new_group:nn { n x }
|
||||||
|
\cs_new:Npn \__groupthm_new_document_command:Nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\NewDocumentCommand { #1 } { #2 } { #3 }
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_new_document_command:Nnn { c n n }
|
||||||
|
\cs_new:Npn \__groupthm_wrap_multiple_document:nnnn #1 #2 #3 #4
|
||||||
|
{
|
||||||
|
\cs_set:Npn \__groupthm_map_aux:n ##1
|
||||||
|
{
|
||||||
|
\cs_set:Nn \__groupthm_Declarator: { \text_titlecase_first:n { ##1 } }
|
||||||
|
\__groupthm_new_document_command:cnn { #2 } { #3 } { #4 }
|
||||||
|
}
|
||||||
|
\clist_map_function:nN { #1 } \__groupthm_map_aux:n
|
||||||
|
}
|
||||||
|
\__groupthm_wrap_multiple_document:nnnn
|
||||||
|
{ new, renew, provide, declare }
|
||||||
|
{ \__groupthm_Declarator: TheoremGroup }
|
||||||
|
{ O{} m }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\use:c { groupthm_#1 _group:nn } { ##1 } { ##2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \groupthm_declare_group_rule:nnnn #1 #2 #3 #4
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\str_set:Nx \l_tmpa_str { \tl_trim_spaces:n { #3 } }
|
||||||
|
\str_if_eq:VnT \l_tmpa_str { higher }
|
||||||
|
{
|
||||||
|
\str_set:Nn \l_tmpa_str { after }
|
||||||
|
}
|
||||||
|
\str_if_eq:VnT \l_tmpa_str { lower }
|
||||||
|
{
|
||||||
|
\str_set:Nn \l_tmpa_str { before }
|
||||||
|
}
|
||||||
|
\str_if_eq:nnTF { #1 } { ?? }
|
||||||
|
{
|
||||||
|
\hook_gset_rule:nnVn {??} {#2} \l_tmpa_str {#4}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\hook_gset_rule:nnVn { __groupthm / #1 } {#2} \l_tmpa_str {#4}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \groupthm_declare_group_rule:nnnn { n n n x }
|
||||||
|
\NewDocumentCommand { \DeclareTheoremGroupRule } { O{??} m m m }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\groupthm_declare_group_rule:nnnn {#1} {#2} {#3} {#4}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \groupthm_add_parent:nn #1 #2
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\__groupthm_ensure_group_exists:n { #1 }
|
||||||
|
\__groupthm_ensure_group_exists:n { #2 }
|
||||||
|
\clist_gput_left:cn { g__groupthm_parents_group__#1__clist } { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \groupthm_add_parent:nn { n x }
|
||||||
|
\NewDocumentCommand { \AddTheoremGroupParent } { m m }
|
||||||
|
{
|
||||||
|
\__groupthmlazy:n
|
||||||
|
{
|
||||||
|
\groupthm_add_parent:nn { #1 } { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_push_tmpa_seq:n #1
|
||||||
|
{
|
||||||
|
\seq_push:Nn \l_tmpa_seq { #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_flatten_groups_hierarchy:nN #1 #2
|
||||||
|
{
|
||||||
|
\clist_clear:N #2
|
||||||
|
\seq_set_from_clist:Nn \l_tmpa_seq { #1 }
|
||||||
|
\bool_until_do:nn
|
||||||
|
{
|
||||||
|
\seq_if_empty_p:N \l_tmpa_seq
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\seq_pop:NN \l_tmpa_seq \l_tmpa_tl
|
||||||
|
\__groupthm_ensure_group_exists:V \l_tmpa_tl
|
||||||
|
\clist_if_in:NVF #2 \l_tmpa_tl
|
||||||
|
{
|
||||||
|
\clist_put_left:NV #2 \l_tmpa_tl
|
||||||
|
\clist_map_function:cN
|
||||||
|
{ g__groupthm_parents_group__ \l_tmpa_tl __clist }
|
||||||
|
\__groupthm_push_tmpa_seq:n
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \groupthm_append_to_group:nn #1 #2
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\groupthm_new_group:nx { #1 } { __append__ \int_use:N \g__groupthm_append_groups_int }
|
||||||
|
\groupthm_add_parent:nx { #2 } { __append__ \int_use:N \g__groupthm_append_groups_int }
|
||||||
|
\groupthm_declare_group_rule:nnnx
|
||||||
|
{ ?? } { #2 } { before } { __append__ \int_use:N \g__groupthm_append_groups_int }
|
||||||
|
\int_gincr:N \g__groupthm_append_groups_int
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\NewDocumentCommand { \AppendToTheoremGroup } { O{} m }
|
||||||
|
{
|
||||||
|
\__groupthmlazy:n
|
||||||
|
{
|
||||||
|
\groupthm_append_to_group:nn { #1 } { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\clist_new:N \l__powerset_copied_clist
|
||||||
|
\seq_new:N \l__powerset_saved_seq
|
||||||
|
\cs_generate_variant:Nn \clist_remove_all:Nn { N V }
|
||||||
|
\cs_new:Npn \__powerset_clist_foreach_aux:Nn #1 #2
|
||||||
|
{
|
||||||
|
\clist_if_empty:NTF \l__powerset_copied_clist
|
||||||
|
{
|
||||||
|
#2
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\clist_get:NN \l__powerset_copied_clist \l_tmpa_tl
|
||||||
|
\seq_push:NV \l__powerset_saved_seq \l_tmpa_tl
|
||||||
|
\clist_pop:NN \l__powerset_copied_clist { \l_tmpa_tl }
|
||||||
|
\__powerset_clist_foreach_aux:Nn #1 {#2}
|
||||||
|
\seq_get:NN \l__powerset_saved_seq \l_tmpa_tl
|
||||||
|
\clist_put_left:NV #1 \l_tmpa_tl
|
||||||
|
\__powerset_clist_foreach_aux:Nn #1 {#2}
|
||||||
|
\seq_get:NN \l__powerset_saved_seq \l_tmpa_tl
|
||||||
|
\clist_remove_all:NV #1 \l_tmpa_tl
|
||||||
|
\clist_push:NV \l__powerset_copied_clist \l_tmpa_tl
|
||||||
|
\seq_pop:NN \l__powerset_saved_seq \l_tmpa_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \powerset_clist_foreach:Nn #1 #2
|
||||||
|
{
|
||||||
|
\clist_set_eq:NN \l__powerset_copied_clist #1
|
||||||
|
\clist_clear:N #1
|
||||||
|
\clist_remove_duplicates:N \l__powerset_copied_clist
|
||||||
|
\__powerset_clist_foreach_aux:Nn #1 {#2}
|
||||||
|
\clist_set_eq:NN #1 \l__powerset_copied_clist
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_ensure_group_exists:n #1
|
||||||
|
{
|
||||||
|
\cs_if_exist:cF { __groupthm_use_group__#1: }
|
||||||
|
{
|
||||||
|
\msg_error:nnn { groupthm } { unknown ~ group } { #1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_ensure_group_exists:n { V }
|
||||||
|
\cs_new:Npn \__groupthm_use_group:n #1
|
||||||
|
{
|
||||||
|
\__groupthm_ensure_group_exists:n { #1 }
|
||||||
|
\use:c { __groupthm_use_group__#1: }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_use_function_on_name:n #1
|
||||||
|
{
|
||||||
|
\tl_set:Nx \l__groupthm_name_tl
|
||||||
|
{
|
||||||
|
#1 { \tl_use:N \l__groupthm_name_tl }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_define_theorem:nnnn #1 #2 #3 #4
|
||||||
|
{
|
||||||
|
\tl_clear:N \l__groupthm_prefix_tl
|
||||||
|
\tl_set:Nn \l__groupthm_name_tl { #3 }
|
||||||
|
\tl_clear:N \l__groupthm_suffix_tl
|
||||||
|
\clist_clear:N \l__groupthm_mapname_clist
|
||||||
|
\clist_clear:N \l__groupthm_thmtools_clist
|
||||||
|
\hook_gremove_code:nn { __groupthm/prefix }{*}
|
||||||
|
\hook_gremove_code:nn { __groupthm/suffix }{*}
|
||||||
|
\hook_gremove_code:nn { __groupthm/mapname }{*}
|
||||||
|
\hook_gremove_code:nn { __groupthm/thmtools }{*}
|
||||||
|
\__groupthm_flatten_groups_hierarchy:nN { #2, all } \l__groupthm_group_clist
|
||||||
|
\clist_map_function:NN \l__groupthm_group_clist \__groupthm_use_group:n
|
||||||
|
\tl_log:x { Flattened ~ groups ~ '#2' ~ to ~ '\clist_use:Nn \l__groupthm_group_clist {,}' ~ when ~
|
||||||
|
defining ~ theorem ~ '#1' }
|
||||||
|
\hook_use:n { __groupthm/prefix }
|
||||||
|
\hook_use:n { __groupthm/suffix }
|
||||||
|
\hook_use:n { __groupthm/mapname }
|
||||||
|
\hook_use:n { __groupthm/thmtools }
|
||||||
|
\clist_map_function:NN \l__groupthm_mapname_clist \map_use_on_name:n
|
||||||
|
\tl_set:Nn \l_tmpa_tl { name = }
|
||||||
|
\tl_put_right:NV \l_tmpa_tl \l__groupthm_prefix_tl
|
||||||
|
\tl_put_right:NV \l_tmpa_tl \l__groupthm_name_tl
|
||||||
|
\tl_put_right:NV \l_tmpa_tl \l__groupthm_suffix_tl
|
||||||
|
\clist_put_right:NV \l__groupthm_thmtools_clist \l_tmpa_tl
|
||||||
|
\clist_put_right:Nn \l__groupthm_thmtools_clist { #4 }
|
||||||
|
\__groupthm_thmtools_declare_theorem:Vn
|
||||||
|
\l__groupthm_thmtools_clist
|
||||||
|
{ #1 }
|
||||||
|
}
|
||||||
|
\__groupthm_define_multiple:nnnNNnn
|
||||||
|
{ new, provide }
|
||||||
|
{ grouped ~ theorem }
|
||||||
|
{ ##1 }
|
||||||
|
\__groupthm_error:
|
||||||
|
\__groupthm_define_theorem:nnnn
|
||||||
|
{ groupthm_#1_theorem:nnnn }
|
||||||
|
{ { ##1 } { ##2 } { ##3 } { ##4 } }
|
||||||
|
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { n V V V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { n V V V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_new_theorem:nnnn { x V n n }
|
||||||
|
\cs_generate_variant:Nn \groupthm_provide_theorem:nnnn { x V n n }
|
||||||
|
\__groupthm_wrap_multiple:nnn
|
||||||
|
{ new, provide }
|
||||||
|
{ groupthm_#1_theorem:nnn }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\__groupthm_set_normalized_keys:nnn { ##1 } { grouped ~ theorem } { ##2 }
|
||||||
|
\bool_if:nT { ##3 }
|
||||||
|
{
|
||||||
|
\clist_put_left:Nn \l__groupthm_group_clist { unnumbered }
|
||||||
|
}
|
||||||
|
\use:c { groupthm_#1_theorem:nVVV }
|
||||||
|
{ ##2 }
|
||||||
|
\l__groupthm_group_clist
|
||||||
|
\l__groupthm_name_tl
|
||||||
|
\l__groupthm_thmtools_clist
|
||||||
|
\bool_if:NT \l__groupthm_starred_version_bool
|
||||||
|
{
|
||||||
|
\clist_put_left:Nn \l__groupthm_group_clist { starred }
|
||||||
|
\use:c { groupthm_#1_theorem:nVVV }
|
||||||
|
{ ##2* }
|
||||||
|
\l__groupthm_group_clist
|
||||||
|
\l__groupthm_name_tl
|
||||||
|
\l__groupthm_thmtools_clist
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\__groupthm_wrap_multiple_document:nnnn
|
||||||
|
{ new, provide }
|
||||||
|
{ \__groupthm_Declarator: GroupedTheorem }
|
||||||
|
{ s O{} m }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\use:c { groupthm_#1_theorem:nnn }
|
||||||
|
{ ##2 }
|
||||||
|
{ ##3 }
|
||||||
|
{ ##1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_define_family:nnnnn #1 #2 #3 #4 #5
|
||||||
|
{
|
||||||
|
\clist_set:Nn \l_tmpa_clist { #2 }
|
||||||
|
\powerset_clist_foreach:Nn \l_tmpa_clist
|
||||||
|
{
|
||||||
|
\clist_set_eq:NN \l__groupthm_group_clist \l_tmpa_clist
|
||||||
|
\clist_put_right:Nn \l__groupthm_group_clist { #5 }
|
||||||
|
\__groupthm_sort_group_names:
|
||||||
|
\use:c{groupthm_new_theorem:xVnn}
|
||||||
|
{__#1__groups_\clist_use:Nn \l__groupthm_group_clist {_}}
|
||||||
|
\l__groupthm_group_clist
|
||||||
|
{ #3 }
|
||||||
|
{ #4 }
|
||||||
|
}
|
||||||
|
\clist_new:c { __groupthm_family__#1__group_clist }
|
||||||
|
\clist_set_eq:cN {__groupthm_family__#1__group_clist } \l_tmpa_clist
|
||||||
|
\clist_new:c { __groupthm_family__#1__always_group_clist }
|
||||||
|
\clist_set:cn {__groupthm_family__#1__always_group_clist } { #5 }
|
||||||
|
}
|
||||||
|
\__groupthm_define_multiple:nnnNNnn
|
||||||
|
{ new, provide }
|
||||||
|
{ theorem ~ family }
|
||||||
|
{ __groupthm_family__##1__group_clist }
|
||||||
|
\__groupthm_error:
|
||||||
|
\__groupthm_define_family:nnnnn
|
||||||
|
{ groupthm_#1_family:nnnnn }
|
||||||
|
{ { ##1 } { ##2 } { ##3 } { ##4 } { ##5 }}
|
||||||
|
\cs_generate_variant:Nn \groupthm_new_family:nnnnn { n V V V V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_provide_family:nnnnn { n V V V V }
|
||||||
|
\__groupthm_wrap_multiple:nnn
|
||||||
|
{ new, provide }
|
||||||
|
{ groupthm_#1_family:nnn }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\__groupthm_set_normalized_keys:nnn { ##1 } { theorem ~ family } { ##2 }
|
||||||
|
\bool_if:nTF { ##3}
|
||||||
|
{
|
||||||
|
\clist_set:Nn \l_tmpa_clist { unnumbered }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\clist_clear:N \l_tmpa_clist
|
||||||
|
}
|
||||||
|
\bool_if:NT \l__groupthm_starred_version_bool
|
||||||
|
{
|
||||||
|
\clist_put_left:Nn \l__groupthm_group_clist { starred }
|
||||||
|
}
|
||||||
|
\use:c { groupthm_#1_family:nVVVV }
|
||||||
|
{ ##2 }
|
||||||
|
\l__groupthm_group_clist
|
||||||
|
\l__groupthm_name_tl
|
||||||
|
\l__groupthm_thmtools_clist
|
||||||
|
\l_tmpa_clist
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\__groupthm_wrap_multiple_document:nnnn
|
||||||
|
{ new, provide }
|
||||||
|
{ \__groupthm_Declarator: GroupedTheoremFamily }
|
||||||
|
{ s O{} m }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\use:c { groupthm_#1_family:nnn }
|
||||||
|
{ ##2 }
|
||||||
|
{ ##3 }
|
||||||
|
{ ##1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \groupthm_add_theorem_to_group:n #1
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\bool_if:NTF \l__groupthm_in_family_options_environment_bool
|
||||||
|
{
|
||||||
|
\clist_put_left:Nn \l__groupthm_group_clist { #1 }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\msg_error:nn { groupthm } { misuse ~ add ~ theorem ~ to ~ group }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\NewDocumentCommand { \AddTheoremToGroup } { m }
|
||||||
|
{
|
||||||
|
\groupthm_add_theorem_to_group:n { #1 }
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_define_family_options:nnnn #1 #2 #3 #4
|
||||||
|
{
|
||||||
|
\DeclareDocumentEnvironment
|
||||||
|
{ #1 }
|
||||||
|
{ #2 }
|
||||||
|
{
|
||||||
|
\clist_clear:N \l__groupthm_group_clist
|
||||||
|
\bool_set_true:N \l__groupthm_in_family_options_environment_bool
|
||||||
|
#3
|
||||||
|
\bool_set_false:N \l__groupthm_in_family_options_environment_bool
|
||||||
|
\clist_put_right:Nn \l__groupthm_group_clist { #4 }
|
||||||
|
\__groupthm_sort_group_names:
|
||||||
|
\cs_if_exist:cTF { __#1__groups_ \clist_use:Nn \l__groupthm_group_clist { _ } }
|
||||||
|
{
|
||||||
|
\begin { __#1__groups_ \clist_use:Nn \l__groupthm_group_clist { _ } }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\msg_error:nnxx { groupthm } { undefined ~ theorem ~ variant }
|
||||||
|
{ #1 }
|
||||||
|
{ \clist_use:Nnnn \l__groupthm_group_clist { ~ and ~ } {, ~} { , ~ and ~ } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\clist_clear:N \l__groupthm_group_clist
|
||||||
|
\bool_set_true:N \l__groupthm_in_family_options_environment_bool
|
||||||
|
#3
|
||||||
|
\bool_set_false:N \l__groupthm_in_family_options_environment_bool
|
||||||
|
\clist_put_right:Nn \l__groupthm_group_clist { #4 }
|
||||||
|
\__groupthm_sort_group_names:
|
||||||
|
\end { __#1__groups_ \clist_use:Nn \l__groupthm_group_clist { _ } }
|
||||||
|
}
|
||||||
|
\__groupthm_cache_slow:n
|
||||||
|
{
|
||||||
|
\csname __groupthm_define_family_options:nnnn \endcsname { #1 } { #2 } { #3 } { #4 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\__groupthm_define_multiple:nnnNNnn
|
||||||
|
{ new, renew, provide, declare }
|
||||||
|
{ theorem ~ family ~ options }
|
||||||
|
{ ##1 }
|
||||||
|
\use_none:n
|
||||||
|
\__groupthm_define_family_options:nnnn
|
||||||
|
{ groupthm_#1_family_options:nnnn }
|
||||||
|
{ { ##1 } { ##2 } { ##3 } { ##4 } }
|
||||||
|
\cs_generate_variant:Nn \groupthm_new_family_options:nnnn { n n n V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_renew_family_options:nnnn { n n n V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_provide_family_options:nnnn { n n n V }
|
||||||
|
\cs_generate_variant:Nn \groupthm_declare_family_options:nnnn { n n n V }
|
||||||
|
\__groupthm_wrap_multiple_document:nnnn
|
||||||
|
{ new, renew, provide, declare }
|
||||||
|
{ \__groupthm_Declarator: GroupedTheoremFamilyOptions }
|
||||||
|
{ s O{} m m m }
|
||||||
|
{
|
||||||
|
\__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\keys_set:nn { groupthm / theorem ~ family ~ options } { starred ~ version }
|
||||||
|
\keys_set:nn { groupthm / theorem ~ family ~ options } { ##2 }
|
||||||
|
\bool_if:nTF { ##1 }
|
||||||
|
{
|
||||||
|
\clist_set:Nn \l_tmpa_clist { unnumbered }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\clist_clear:N \l_tmpa_clist
|
||||||
|
}
|
||||||
|
\use:c { groupthm_#1_family_options:nnnV }
|
||||||
|
{ ##3 }
|
||||||
|
{ ##4 }
|
||||||
|
{ ##5 }
|
||||||
|
\l_tmpa_clist
|
||||||
|
\bool_if:NT \l__groupthm_starred_version_bool
|
||||||
|
{
|
||||||
|
\use:c { groupthm_#1_family_options:nnnV }
|
||||||
|
{ ##3* }
|
||||||
|
{ ##4 }
|
||||||
|
{
|
||||||
|
##5
|
||||||
|
\groupthm_add_theorem_to_group:n { starred }
|
||||||
|
}
|
||||||
|
\l_tmpa_clist
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\bool_if:NTF \g__groupthm_cache_bool
|
||||||
|
{
|
||||||
|
\cs_new:Npn \__groupthm_write_auxout:n
|
||||||
|
{
|
||||||
|
\iow_now:cn { @auxout }
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_write_auxout:n { x }
|
||||||
|
\cs_new:Npn \__groupthm_dump_auxfile:n
|
||||||
|
{
|
||||||
|
\clist_gput_right:Nn \g__groupthm_dump_auxfile_clist
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_dump_auxfile:n { x }
|
||||||
|
|
||||||
|
\cs_new:Npn \__groupthm_cache_auxfile:n
|
||||||
|
{
|
||||||
|
\clist_gput_right:Nn \g__groupthm_dump_cache_clist
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__groupthm_cache_auxfile:n { V }
|
||||||
|
|
||||||
|
\hook_gput_code:nnn { enddocument } { groupthm }
|
||||||
|
{
|
||||||
|
\clist_map_function:NN \g__groupthm_dump_auxfile_clist
|
||||||
|
\__groupthm_write_auxout:n
|
||||||
|
\__groupthm_write_auxout:n
|
||||||
|
{
|
||||||
|
\csname tl_gput_right:cn \endcsname
|
||||||
|
{
|
||||||
|
g__groupthm_lazy_auxfile_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\__groupthm_write_auxout:x { \str_use:N \c_left_brace_str }
|
||||||
|
\clist_map_function:NN \g__groupthm_dump_cache_clist
|
||||||
|
\__groupthm_write_auxout:n
|
||||||
|
\__groupthm_write_auxout:x { \str_use:N \c_right_brace_str }
|
||||||
|
}
|
||||||
|
|
||||||
|
\__groupthm_dump_auxfile:x
|
||||||
|
{
|
||||||
|
\ExplSyntaxOn
|
||||||
|
\int_gset:Nn \exp_not:N \g__groupthm_cache_version_aux_int
|
||||||
|
{
|
||||||
|
\int_use:N \g__groupthm_cache_version_document_int
|
||||||
|
}
|
||||||
|
\ExplSyntaxOff
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__groupthm_lazy:n
|
||||||
|
{
|
||||||
|
\tl_gput_right:Nn \g__groupthm_lazy_document_tl
|
||||||
|
}
|
||||||
|
\cs_set_eq:NN \__groupthm_cache:n \__groupthm_cache_auxfile:n
|
||||||
|
\cs_new:Npn \__groupthm_cache_slow:n #1
|
||||||
|
{
|
||||||
|
\tl_set:Nn \l_tmpa_tl
|
||||||
|
{
|
||||||
|
{ #1 }
|
||||||
|
}
|
||||||
|
\regex_replace_all:nnN { \cP\# } { \cO\# } \l_tmpa_tl
|
||||||
|
\__groupthm_cache_auxfile:V \l_tmpa_tl
|
||||||
|
}
|
||||||
|
\hook_gput_code:nnn { begindocument } { groupthm }
|
||||||
|
{
|
||||||
|
\cs_set_eq:NN \__groupthm_lazy:n \use:n
|
||||||
|
\int_compare:nNnTF
|
||||||
|
\g__groupthm_cache_version_aux_int < \g__groupthm_cache_version_document_int
|
||||||
|
{
|
||||||
|
\tl_use:N \g__groupthm_lazy_document_tl
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_use:N \g__groupthm_lazy_auxfile_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\cs_set_eq:NN \__groupthm_cache:n \use_none:n
|
||||||
|
\cs_set_eq:NN \__groupthm_cache_slow:n \use_none:n
|
||||||
|
\cs_set_eq:NN \__groupthm_lazy:n \use:n
|
||||||
|
}
|
||||||
|
\groupthm_new_group:nnnnn { all } { } { } { } { }
|
||||||
|
\groupthm_new_group:nnnnn { starred } { } { } { } { numbered = no }
|
||||||
|
\groupthm_new_group:nnnnn { unnumbered } { } { } { } { numbered = no }
|
||||||
|
\endinput
|
||||||
|
%%
|
||||||
|
%% End of file `groupthm.sty'.
|
290
environments/refproof/mkessler-refproof.sty
Normal file
290
environments/refproof/mkessler-refproof.sty
Normal file
|
@ -0,0 +1,290 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'refproof.pysty3'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-24-g80377fc (commit 80377fc)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesExplPackage{mkessler-refproof}{2022/06/27}{2.9-24-g80377fc}{Automatic references to theorems in proofs. Claim counters within proofs}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\ExplSyntaxOn
|
||||||
|
|
||||||
|
\RequirePackage{amssymb}
|
||||||
|
\RequirePackage{amsthm}
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
\RequirePackage{refcount}
|
||||||
|
\RequirePackage{translator}
|
||||||
|
\RequirePackage{mkessler-subproof} % TODO: let PyTeX format the mkessler- prefix
|
||||||
|
|
||||||
|
|
||||||
|
%%%% Hook management
|
||||||
|
|
||||||
|
\cs_new:Npn\__mkessler_refproof_autoref:n
|
||||||
|
{
|
||||||
|
\ref
|
||||||
|
}
|
||||||
|
|
||||||
|
\AddToHook{package/hyperref/after}
|
||||||
|
{
|
||||||
|
\cs_set:Npn\__mkessler_refproof_autoref:n
|
||||||
|
{
|
||||||
|
\autoref
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% Saving old definitions
|
||||||
|
|
||||||
|
\cs_new_eq:NN \__mkessler_refproof_saved_proof:w \proof
|
||||||
|
\cs_new_eq:NN \__mkessler_refproof_saved_endproof: \endproof
|
||||||
|
\cs_new_eq:NN \__mkessler_refproof_saved_subproof:n \rawsubproof
|
||||||
|
\cs_new_eq:NN \__mkessler_refproof_saved_endsubproof: \rawendsubproof
|
||||||
|
|
||||||
|
%%% Internal variables
|
||||||
|
|
||||||
|
\int_new:N \__mkessler_refproof_proofdepth_int
|
||||||
|
\seq_new:N \__mkessler_refproof_nested_claim_counter_values_seq
|
||||||
|
\prop_new:N \__mkessler_refproof_refproof_claim_counters_prop
|
||||||
|
|
||||||
|
\cs_generate_variant:Nn \seq_push:Nn { N x }
|
||||||
|
|
||||||
|
%%% Language translations
|
||||||
|
|
||||||
|
\usedictionary{translator-proof-dictionary}
|
||||||
|
|
||||||
|
%%%Now, we internally got a proof and a subproof environment
|
||||||
|
%%%Make them available as 'old' variants, with their defautl behaviour
|
||||||
|
\NewDocumentEnvironment{oldproof} { }
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_proof:w
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_endproof:
|
||||||
|
}
|
||||||
|
|
||||||
|
\NewDocumentEnvironment{oldsubproof} { o }
|
||||||
|
{
|
||||||
|
\IfValueTF { #1 }
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_subproof:n { #1 }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_subproof:n { \translate { Subproof } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_endsubproof:
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% Main implementation
|
||||||
|
|
||||||
|
%Introduce claim environment
|
||||||
|
\newtheorem{claim}{\translate{Claim}}
|
||||||
|
\newtheorem*{claim*}{\translate{Claim}}
|
||||||
|
\AtBeginDocument{\def\claimautorefname{\translate{Claim}}}
|
||||||
|
|
||||||
|
|
||||||
|
\cs_new:Nn \__mkessler_refproof_enter_proof:
|
||||||
|
{
|
||||||
|
\int_gincr:N \__mkessler_refproof_proofdepth_int
|
||||||
|
\seq_gpush:Nx \__mkessler_refproof_nested_claim_counter_values_seq
|
||||||
|
{
|
||||||
|
\arabic { claim }
|
||||||
|
}
|
||||||
|
\group_begin:
|
||||||
|
}
|
||||||
|
|
||||||
|
\cs_new:Nn \__mkessler_refproof_leave_proof:
|
||||||
|
{
|
||||||
|
\group_end:
|
||||||
|
\seq_gpop:NN \__mkessler_refproof_nested_claim_counter_values_seq \l_tmpa_tl
|
||||||
|
\setcounter { claim } { \tl_use:N \l_tmpa_tl }
|
||||||
|
\int_gdecr:N \__mkessler_refproof_proofdepth_int
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
% Usage:
|
||||||
|
% #1 = \BooleanTrue or \BooleanFalse indicating presence of star
|
||||||
|
% #2 = star version of translation
|
||||||
|
% #3 = nonstar version of translation
|
||||||
|
\cs_new:Nn \__mkessler_refproof_set_proof_prefix:nnn
|
||||||
|
{
|
||||||
|
\IfBooleanTF { #1 }
|
||||||
|
{
|
||||||
|
\cs_set:Nn \__mkessler_refproof_proof_prefix:
|
||||||
|
{
|
||||||
|
\translate { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\cs_set:Nn \__mkessler_refproof_proof_prefix:
|
||||||
|
{
|
||||||
|
\translate { #3 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\cs_new:Nn \__mkessler_refproof_proof_comment:n
|
||||||
|
{
|
||||||
|
\IfValueT { #1 }
|
||||||
|
{
|
||||||
|
\c_space_tl ( #1 )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\NewDocumentEnvironment{refproof}{s m !o}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_enter_proof:
|
||||||
|
|
||||||
|
\prop_get:NnN
|
||||||
|
\__mkessler_refproof_refproof_claim_counters_prop
|
||||||
|
{ #2 }
|
||||||
|
\l_tmpa_tl
|
||||||
|
|
||||||
|
\quark_if_no_value:NTF \l_tmpa_tl
|
||||||
|
{
|
||||||
|
\setcounter { claim } { 0 }
|
||||||
|
\__mkessler_refproof_set_proof_prefix:nnn { #1 }
|
||||||
|
{ Proof* ~ of }
|
||||||
|
{ Proof ~ of }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\setcounter { claim } { \tl_use:N \l_tmpa_tl }
|
||||||
|
\__mkessler_refproof_set_proof_prefix:nnn { #1 }
|
||||||
|
{ Continuation ~ of ~ proof* ~ of }
|
||||||
|
{ Continuation ~ of ~ proof ~ of }
|
||||||
|
}
|
||||||
|
% Set up counter number printing as subindexed by numbering of the reference
|
||||||
|
\renewcommand \theclaim
|
||||||
|
{
|
||||||
|
\getrefnumber { #2 } . \arabic { claim }
|
||||||
|
}
|
||||||
|
\__mkessler_refproof_saved_proof:w
|
||||||
|
[
|
||||||
|
\__mkessler_refproof_proof_prefix:
|
||||||
|
\c_space_tl
|
||||||
|
\__mkessler_refproof_autoref:n { #2 }
|
||||||
|
\__mkessler_refproof_proof_comment:n { #3 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_endproof:
|
||||||
|
\prop_gput:Nnx \__mkessler_refproof_refproof_claim_counters_prop
|
||||||
|
{ #2 }
|
||||||
|
{
|
||||||
|
\value{claim}
|
||||||
|
}
|
||||||
|
\__mkessler_refproof_leave_proof:
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% A 'smart' proof environment
|
||||||
|
\AtBeginDocument{
|
||||||
|
\RenewDocumentEnvironment{proof}{!s !o}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_enter_proof:
|
||||||
|
|
||||||
|
\setcounter{claim}{0}
|
||||||
|
|
||||||
|
\renewcommand \theclaim
|
||||||
|
{
|
||||||
|
\arabic { claim }
|
||||||
|
}
|
||||||
|
\int_compare:nNnTF \__mkessler_refproof_proofdepth_int > 1
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_set_proof_prefix:nnn { #1 }
|
||||||
|
{ Subproof* }
|
||||||
|
{ Subproof }
|
||||||
|
\__mkessler_refproof_saved_subproof:n
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_proof_prefix:
|
||||||
|
\__mkessler_refproof_proof_comment:n { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_set_proof_prefix:nnn { #1 }
|
||||||
|
{ Proof* }
|
||||||
|
{ Proof }
|
||||||
|
\__mkessler_refproof_saved_proof:w
|
||||||
|
[
|
||||||
|
\__mkessler_refproof_proof_prefix:
|
||||||
|
\__mkessler_refproof_proof_comment:n { #2 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_endproof:
|
||||||
|
\__mkessler_refproof_leave_proof:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\RenewDocumentEnvironment{subproof}{!s !o}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_enter_proof:
|
||||||
|
|
||||||
|
\setcounter { claim } { 0 }
|
||||||
|
\renewcommand \theclaim
|
||||||
|
{
|
||||||
|
\arabic { claim }
|
||||||
|
}
|
||||||
|
|
||||||
|
\__mkessler_refproof_set_proof_prefix:nnn { #1 }
|
||||||
|
{ Subproof* }
|
||||||
|
{ Subproof }
|
||||||
|
\__mkessler_refproof_saved_subproof:n
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_proof_prefix:
|
||||||
|
\__mkessler_refproof_proof_comment:n { #2 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\__mkessler_refproof_saved_endsubproof:
|
||||||
|
\__mkessler_refproof_leave_proof:
|
||||||
|
}
|
||||||
|
|
||||||
|
\DeclareDocumentCommand { \proofdepth } { }
|
||||||
|
{
|
||||||
|
\int_to_arabic:n \__mkessler_refproof_proofdepth_int
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This dictionary has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'proof.pydict'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the dictionary again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX dictionary is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the dictionary sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesDictionary{translator-proof-dictionary}{English}
|
||||||
|
|
||||||
|
\providetranslation{Claim}{Claim}
|
||||||
|
\providetranslation{claim}{claim}
|
||||||
|
\providetranslation{Claim*}{Claim*}
|
||||||
|
\providetranslation{claim*}{claim*}
|
||||||
|
\providetranslation{Proof}{Proof}
|
||||||
|
\providetranslation{proof}{proof}
|
||||||
|
\providetranslation{Proof*}{Proof*}
|
||||||
|
\providetranslation{proof*}{proof*}
|
||||||
|
\providetranslation{Proof of}{Proof of}
|
||||||
|
\providetranslation{proof of}{proof of}
|
||||||
|
\providetranslation{Proof* of}{Proof* of}
|
||||||
|
\providetranslation{proof* of}{proof* of}
|
||||||
|
\providetranslation{Continuation of proof}{Continuation of proof}
|
||||||
|
\providetranslation{continuation of proof}{continuation of proof}
|
||||||
|
\providetranslation{Continuation of proof of}{Continuation of proof of}
|
||||||
|
\providetranslation{continuation of proof of}{continuation of proof of}
|
||||||
|
\providetranslation{Continuation of proof*}{Continuation of proof*}
|
||||||
|
\providetranslation{continuation of proof*}{continuation of proof*}
|
||||||
|
\providetranslation{Continuation of proof* of}{Continuation of proof* of}
|
||||||
|
\providetranslation{continuation of proof* of}{continuation of proof* of}
|
||||||
|
\providetranslation{Subproof}{Subproof}
|
||||||
|
\providetranslation{subproof}{subproof}
|
||||||
|
\providetranslation{Subproof*}{Subproof*}
|
||||||
|
\providetranslation{subproof*}{subproof*}
|
|
@ -0,0 +1,74 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This dictionary has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'proof.pydict'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the dictionary again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX dictionary is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the dictionary sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesDictionary{translator-proof-dictionary}{German}
|
||||||
|
|
||||||
|
\providetranslation{Claim}{Behauptung}
|
||||||
|
\providetranslation{claim}{Behauptung}
|
||||||
|
\providetranslation{Claim*}{Behauptung*}
|
||||||
|
\providetranslation{claim*}{Behauptung*}
|
||||||
|
\providetranslation{Proof}{Beweis}
|
||||||
|
\providetranslation{proof}{Beweis}
|
||||||
|
\providetranslation{Proof*}{Beweis*}
|
||||||
|
\providetranslation{proof*}{Beweis*}
|
||||||
|
\providetranslation{Proof of}{Beweis von}
|
||||||
|
\providetranslation{proof of}{Beweis von}
|
||||||
|
\providetranslation{Proof* of}{Beweis* von}
|
||||||
|
\providetranslation{proof* of}{Beweis* von}
|
||||||
|
\providetranslation{Continuation of proof}{Fortsetzung des Beweises}
|
||||||
|
\providetranslation{continuation of proof}{Fortsetzung des Beweises}
|
||||||
|
\providetranslation{Continuation of proof of}{Fortsetzung des Beweises zu}
|
||||||
|
\providetranslation{continuation of proof of}{Fortsetzung des Beweises zu}
|
||||||
|
\providetranslation{Continuation of proof*}{Fortsetzung des Beweises*}
|
||||||
|
\providetranslation{continuation of proof*}{Fortsetzung des Beweises*}
|
||||||
|
\providetranslation{Continuation of proof* of}{Fortsetzung des Beweises* zu}
|
||||||
|
\providetranslation{continuation of proof* of}{Fortsetzung des Beweises* zu}
|
||||||
|
\providetranslation{Subproof}{Unterbeweis}
|
||||||
|
\providetranslation{subproof}{Unterbeweis}
|
||||||
|
\providetranslation{Subproof*}{Unterbeweis*}
|
||||||
|
\providetranslation{subproof*}{Unterbeweis*}
|
141
environments/thmstyle/thmstyle.sty
Normal file
141
environments/thmstyle/thmstyle.sty
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
%%
|
||||||
|
%% This is file `thmstyle.sty',
|
||||||
|
%% generated with the docstrip utility.
|
||||||
|
%%
|
||||||
|
%% The original source files were:
|
||||||
|
%%
|
||||||
|
%% thmstyle.dtx (with options: `package')
|
||||||
|
%%
|
||||||
|
%% IMPORTANT NOTICE:
|
||||||
|
%%
|
||||||
|
%% For the copyright see the source file.
|
||||||
|
%%
|
||||||
|
%% Any modified versions of this file must be renamed
|
||||||
|
%% with new filenames distinct from thmstyle.sty.
|
||||||
|
%%
|
||||||
|
%% For distribution of the original source see the terms
|
||||||
|
%% for copying and modification in the file thmstyle.dtx.
|
||||||
|
%%
|
||||||
|
%% This generated file may be distributed as long as the
|
||||||
|
%% original source files, as listed above, are part of the
|
||||||
|
%% same distribution. (The sources need not necessarily be
|
||||||
|
%% in the same archive or directory.)
|
||||||
|
%% File: thmstyle.dtx
|
||||||
|
\ProvidesExplPackage{thmstyle}{2022/01/17}{0.0.1}{Styles for thmtools theorems.}
|
||||||
|
\RequirePackage{amsthm}
|
||||||
|
\RequirePackage{thmtools}
|
||||||
|
\RequirePackage{mdframed}
|
||||||
|
\RequirePackage{xcolor}
|
||||||
|
\RequirePackage{l3keys2e}
|
||||||
|
\bool_new:N \g__thmstyle_default_styles_bool
|
||||||
|
\definecolor{gold}{RGB}{218,165,32}
|
||||||
|
\keys_define:nn { thmstyle }
|
||||||
|
{
|
||||||
|
default styles .bool_set:N = \g__thmstyle_default_styles_bool,
|
||||||
|
default styles .default:n = { true },
|
||||||
|
}
|
||||||
|
\ProcessKeysOptions { thmstyle }
|
||||||
|
\cs_new:Npn \__thmstyle_mdframed_define_style:nn #1 #2
|
||||||
|
{
|
||||||
|
\mdfdefinestyle{#2}{#1}
|
||||||
|
}
|
||||||
|
\cs_new:Npn \__thmstyle_thmtools_declare_style:nn #1 #2
|
||||||
|
{
|
||||||
|
\declaretheoremstyle[#1]{#2}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__thmstyle_thmtools_declare_style:nn { x x }
|
||||||
|
\cs_new:Npn \thmstyle_declare_mdf_style:nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\__thmstyle_mdframed_define_style:nn
|
||||||
|
{
|
||||||
|
linecolor = #2,
|
||||||
|
linewidth = 2pt,
|
||||||
|
leftmargin = 0pt,
|
||||||
|
rightmargin = 0pt,
|
||||||
|
rightline = false,
|
||||||
|
topline = false,
|
||||||
|
bottomline = false,
|
||||||
|
backgroundcolor = #3,
|
||||||
|
skipabove = 0.7\baselineskip,
|
||||||
|
skipbelow = 0pt,
|
||||||
|
innerrightmargin = 10pt,
|
||||||
|
innerbottommargin = 5pt
|
||||||
|
}
|
||||||
|
{
|
||||||
|
#1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \thmstyle_declare_mdf_style:nnn { x n x }
|
||||||
|
\NewDocumentCommand { \DeclareFancyMdfStyle } { o m o }
|
||||||
|
{
|
||||||
|
\thmstyle_declare_mdf_style:xnx
|
||||||
|
{
|
||||||
|
\IfValueTF { #3 }
|
||||||
|
{
|
||||||
|
#3
|
||||||
|
}
|
||||||
|
{
|
||||||
|
md #2 margin
|
||||||
|
\IfValueT { #1 }
|
||||||
|
{
|
||||||
|
and #1 fill
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
#2
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\IfValueTF { #1 }
|
||||||
|
{
|
||||||
|
#1
|
||||||
|
}
|
||||||
|
{
|
||||||
|
white
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\NewDocumentCommand { \DeclareFancyThmStyle } { o m o }
|
||||||
|
{
|
||||||
|
\DeclareFancyMdfStyle [ #1 ] { #2 }
|
||||||
|
\__thmstyle_thmtools_declare_style:xx
|
||||||
|
{
|
||||||
|
mdframed =
|
||||||
|
{
|
||||||
|
style = md #2 margin \IfValueT { #1 } { and #1 fill }
|
||||||
|
},
|
||||||
|
postheadspace = { 0.3em },
|
||||||
|
notefont = \noexpand\mdseries,
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\IfValueTF { #3 }
|
||||||
|
{ #3 }
|
||||||
|
{
|
||||||
|
thm #2 margin
|
||||||
|
\IfBooleanT { #1 }
|
||||||
|
{
|
||||||
|
and #1 fill
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\bool_if:NT \g__thmstyle_default_styles_bool
|
||||||
|
{
|
||||||
|
\DeclareFancyThmStyle[red!8]{red}[thmredmarginandfill]
|
||||||
|
\DeclareFancyThmStyle[orange!10]{orange}[thmorangemarginandfill]
|
||||||
|
\DeclareFancyThmStyle[blue!7]{blue}[thmbluemarginandfill]
|
||||||
|
\DeclareFancyThmStyle{green!70!black}[thmgreenmargin]
|
||||||
|
\DeclareFancyThmStyle{gold}[thmgoldmargin]
|
||||||
|
\DeclareFancyThmStyle{yellow!80!orange}[thmyellowmargin]
|
||||||
|
\DeclareFancyThmStyle{gray}[thmgraymargin]
|
||||||
|
\DeclareFancyThmStyle[violet!7]{violet}[thmvioletmarginandfill]
|
||||||
|
\DeclareFancyThmStyle{violet}[thmvioletmargin]
|
||||||
|
\DeclareFancyThmStyle[blue!7]{red}[thmredmarginbluefill]
|
||||||
|
\DeclareFancyThmStyle{red}[thmredmargin]
|
||||||
|
\DeclareFancyThmStyle[blue!7]{orange}[thmorangemarginbluefill]
|
||||||
|
\DeclareFancyThmStyle[violet!20!gray!20]{black}[thmblackmarginandfill]
|
||||||
|
\DeclareFancyThmStyle{black}[thmblackmargin]
|
||||||
|
}
|
||||||
|
\endinput
|
||||||
|
%%
|
||||||
|
%% End of file `thmstyle.sty'.
|
131
exercises/sheet/mkessler-sheet.cls
Normal file
131
exercises/sheet/mkessler-sheet.cls
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This class has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'sheet.pycls'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the class again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX class is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the class sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesClass{mkessler-sheet}[2022/06/12 - Write up university exercise sheets]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% This is meant as a layouting class for easily writing up exercise sheets.
|
||||||
|
% Use \course \sheetnumber and \author to set metadata of the document
|
||||||
|
% Use option [largename] if the author(s) is/are too long and collide in the fancy header
|
||||||
|
% Use option [german|ngerman|english] to control language appearance
|
||||||
|
|
||||||
|
\RequirePackage{scrbase}
|
||||||
|
|
||||||
|
\newif\ifmkessler@sheet@english\mkessler@sheet@englishtrue
|
||||||
|
\DeclareOption{german}{\mkessler@sheet@englishfalse}
|
||||||
|
\DeclareOption{ngerman}{\mkessler@sheet@englishfalse}
|
||||||
|
\DeclareOption{english}{\mkessler@sheet@englishtrue}
|
||||||
|
|
||||||
|
\newif\ifmkessler@sheet@largename\mkessler@sheet@largenamefalse
|
||||||
|
\DeclareOption{large-name}{\mkessler@sheet@largenametrue}
|
||||||
|
|
||||||
|
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
|
||||||
|
\ProcessOptions\relax
|
||||||
|
|
||||||
|
\LoadClass{scrartcl}
|
||||||
|
|
||||||
|
\KOMAoption{fontsize}{12pt}
|
||||||
|
\KOMAoption{parskip}{half-}
|
||||||
|
\KOMAoption{DIV}{12}
|
||||||
|
\KOMAoption{headings}{normal}
|
||||||
|
|
||||||
|
\RequirePackage{scrlayer-scrpage}
|
||||||
|
\KOMAoption{headsepline}{:}
|
||||||
|
|
||||||
|
\def\@course{\ClassError{mkessler-sheet}{No \noexpand\course given}{Use \noexpand\course{<coursename>} to set the course.}}%
|
||||||
|
\DeclareRobustCommand*{\course}[1]{\gdef\@course{#1}}
|
||||||
|
\def\@sheetnumber{\ClassError{mkessler-sheet}{No \noexpand\sheetnumber given}{Use \noexpand\sheetnumber{<num>} to set the current sheetnumber.}}%
|
||||||
|
\DeclareRobustCommand*{\sheetnumber}[1]{\gdef\@sheetnumber{\ifmkessler@sheet@english Sheet #1 \else Übungsblatt #1\fi}}
|
||||||
|
|
||||||
|
\renewcommand*{\@date}{\today}
|
||||||
|
|
||||||
|
\renewcommand*{\maketitle}{
|
||||||
|
\thispagestyle{plain}
|
||||||
|
{\makebox[0pt][l]{\usekomafont{myauthor}\@author}\hfill\makebox[0pt][r]{\usekomafont{date}\@date}\par}
|
||||||
|
\vspace{0.5em}
|
||||||
|
{\centering\usekomafont{title}\@course\par}
|
||||||
|
{\centering\usekomafont{subtitle}\@sheetnumber \par}
|
||||||
|
\vspace{2em}
|
||||||
|
\hrule
|
||||||
|
\addvspace{2em}
|
||||||
|
}
|
||||||
|
|
||||||
|
\setkomafont{title}{\LARGE\bfseries}
|
||||||
|
\setkomafont{subtitle}{}
|
||||||
|
\newkomafont{myauthor}{}
|
||||||
|
\setkomafont{date}{}
|
||||||
|
\newkomafont{headtitle}{\itshape}
|
||||||
|
\setkomafont{pageheadfoot}{\footnotesize}
|
||||||
|
\setkomafont{descriptionlabel}{\bfseries}
|
||||||
|
\setkomafont{pagenumber}{\normalsize}
|
||||||
|
|
||||||
|
\pagestyle{scrheadings}
|
||||||
|
\ihead[]{\ifmkessler@sheet@largename \usekomafont{myauthor}\@author \\ \@course\;- \@sheetnumber\else \usekomafont{myauthor}\@author\fi }
|
||||||
|
\chead[]{\ifmkessler@sheet@largename \else \usekomafont{subtitle}\@course\;- \@sheetnumber\fi}
|
||||||
|
\ohead[]{\usekomafont{date}\@date}
|
||||||
|
|
||||||
|
% Page layout
|
||||||
|
\setlength{\parindent}{0pt}
|
||||||
|
|
||||||
|
\RequirePackage[a4paper, left=2cm, right=2cm, top=3cm, bottom=3cm, head=15.0pt, headsep=10pt]{geometry}
|
||||||
|
|
||||||
|
\setlength{\skip\footins}{15pt}
|
||||||
|
|
||||||
|
\setlength{\abovecaptionskip}{0cm}
|
||||||
|
\setlength{\belowcaptionskip}{0cm}
|
||||||
|
|
||||||
|
%Für Zeilenabstand 1,5
|
||||||
|
\RequirePackage[onehalfspacing]{setspace}
|
||||||
|
\RequirePackage[super]{nth}
|
||||||
|
|
||||||
|
\newcommand\nr[1]{
|
||||||
|
\section*{\ifmkessler@sheet@english\nth{#1} exercise\else #1. Aufgabe\fi}
|
||||||
|
\setcounter{equation}{0}
|
||||||
|
}
|
149
indexing/symbindex/mkessler-symbindex.sty
Normal file
149
indexing/symbindex/mkessler-symbindex.sty
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'symbindex.pysty3'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesExplPackage{mkessler-symbindex}{2022/06/12}{2.9-14-g6545412}{Declaring of math symbols with automatic indexing}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{imakeidx}
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
|
||||||
|
% Keys used for declaring symbols
|
||||||
|
\keys_define:nn { symbol }
|
||||||
|
{
|
||||||
|
operator .tl_set:N = \l_symbol_operator_tl,
|
||||||
|
operator .default:n = \use:n,
|
||||||
|
formula .tl_set:N = \l_symbol_formula_tl,
|
||||||
|
formula .default:n = \c_novalue_tl,
|
||||||
|
ordered .tl_set:N = \l_symbol_ordered_tl,
|
||||||
|
ordered .default:n = \c_novalue_tl,
|
||||||
|
description .tl_set:N = \l_symbol_description_tl,
|
||||||
|
description .default:n = \c_novalue_tl,
|
||||||
|
group .tl_set:N = \l_symbol_group_tl,
|
||||||
|
group .default:n = \c_novalue_tl,
|
||||||
|
defaultargs .tl_set:N = \l_symbol_defaultargs_tl,
|
||||||
|
defaultargs .default:n = \c_novalue_tl
|
||||||
|
}
|
||||||
|
|
||||||
|
% Core macro not to be used publicly directly. Usage:
|
||||||
|
% #1 = indexname / group
|
||||||
|
% #2 = symbolname,
|
||||||
|
% #3 = description
|
||||||
|
% #4 = operator to apply (one argument) - can be \use:n for identity
|
||||||
|
% #5 = substitution when called
|
||||||
|
% #6 = default appendices to macro in index (e.g. _R)
|
||||||
|
% #7 = ordering in index
|
||||||
|
\cs_new_protected:Nn\symbol_define:nnnnnnn
|
||||||
|
{
|
||||||
|
\bool_new:c { used_#2 }
|
||||||
|
\cs_new_protected:cn { symbol_#2: }
|
||||||
|
{
|
||||||
|
\bool_if:cF { used_#2 }
|
||||||
|
{
|
||||||
|
\index[#1]
|
||||||
|
{
|
||||||
|
#7
|
||||||
|
@
|
||||||
|
$#4{#5}#6$
|
||||||
|
#3
|
||||||
|
}
|
||||||
|
\bool_gset_true:c { used_#2 }
|
||||||
|
}
|
||||||
|
#4{#5}
|
||||||
|
}
|
||||||
|
\expandafter\protected\expandafter\gdef\csname#2\endcsname
|
||||||
|
{
|
||||||
|
\use:c { symbol_#2: }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn\symbol_define:nnnnnnn { V n V V V V V}
|
||||||
|
|
||||||
|
|
||||||
|
% Main package interface
|
||||||
|
\NewDocumentCommand{\DeclareSymbol}{ O{} m}
|
||||||
|
{
|
||||||
|
\keys_set:nn{ symbol }
|
||||||
|
{
|
||||||
|
operator,
|
||||||
|
formula,
|
||||||
|
ordered,
|
||||||
|
description,
|
||||||
|
group,
|
||||||
|
defaultargs
|
||||||
|
}
|
||||||
|
\keys_set:nn{ symbol }{#1}
|
||||||
|
\tl_if_eq:NnTF\l_symbol_description_tl{\c_novalue_tl}
|
||||||
|
{
|
||||||
|
\tl_set:Nn\l_symbol_description_tl { \c_empty_tl }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_put_left:Nn\l_symbol_description_tl { ,\c_space_tl }
|
||||||
|
}
|
||||||
|
\tl_if_eq:NnT\l_symbol_formula_tl{\c_novalue_tl}
|
||||||
|
{
|
||||||
|
\tl_set:Nn\l_symbol_formula_tl {#2}
|
||||||
|
}
|
||||||
|
\tl_if_eq:NnT\l_symbol_ordered_tl{\c_novalue_tl}
|
||||||
|
{
|
||||||
|
\tl_set:Nn\l_symbol_ordered_tl {#2}
|
||||||
|
}
|
||||||
|
\tl_if_eq:NnT\l_symbol_defaultargs_tl{\c_novalue_tl}
|
||||||
|
{
|
||||||
|
\tl_clear:N\l_symbol_defaultargs_tl
|
||||||
|
}
|
||||||
|
\symbol_define:VnVVVVV
|
||||||
|
\l_symbol_group_tl
|
||||||
|
{
|
||||||
|
#2
|
||||||
|
}
|
||||||
|
\l_symbol_description_tl
|
||||||
|
\l_symbol_operator_tl
|
||||||
|
\l_symbol_formula_tl
|
||||||
|
\l_symbol_defaultargs_tl
|
||||||
|
\l_symbol_ordered_tl
|
||||||
|
}
|
101
indexing/vocab/mkessler-vocab.sty
Normal file
101
indexing/vocab/mkessler-vocab.sty
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'vocab.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-vocab}[2022/06/12 - Package for emphasizing vocabulary]
|
||||||
|
|
||||||
|
|
||||||
|
%%Provides a \vocab<[name in index]>{vocabulary} command to print vocabulary in bold blue and automatically index it.
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@vocab@english\mkessler@vocab@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@vocab@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@vocab@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@vocab@englishtrue}
|
||||||
|
\newif\ifmkessler@vocab@index\mkessler@vocab@indexfalse
|
||||||
|
|
||||||
|
\DeclareOptionX{index}{\mkessler@vocab@indextrue}
|
||||||
|
\DeclareOptionX{noindex}{\mkessler@vocab@indexfalse}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-vocab}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%%%%Management of vocabulary and corresponding index
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
\RequirePackage{xcolor}
|
||||||
|
\ifmkessler@vocab@index
|
||||||
|
\RequirePackage{imakeidx}
|
||||||
|
\makeindex[name=vocabindex, columns=2, title=\ifmkessler@vocab@english Index\else Stichwortverzeichnis\fi, intoc]
|
||||||
|
|
||||||
|
%Emphasize \vocabulary
|
||||||
|
\RequirePackage{expl3}
|
||||||
|
\ExplSyntaxOn
|
||||||
|
\NewDocumentCommand{\vocab}{O{} m}{
|
||||||
|
\textbf{\color{blue} #2}%
|
||||||
|
\if\relax\detokenize{#1}\relax%
|
||||||
|
\index[vocabindex]{\text_titlecase_first:n{#2}} % true branch: #1 was empty
|
||||||
|
\else
|
||||||
|
\index[vocabindex]{#1} % false branch: #1 was supplied
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
\ExplSyntaxOff
|
||||||
|
\newcommand\printvocabindex{
|
||||||
|
\printindex[vocabindex]
|
||||||
|
}
|
||||||
|
\NewDocumentCommand{\PrintVocabIndex}{ }
|
||||||
|
{
|
||||||
|
\printindex[vocabindex]
|
||||||
|
}
|
||||||
|
\else
|
||||||
|
\NewDocumentCommand{\vocab}{O{} m }{
|
||||||
|
\textbf{\color{blue} #2}
|
||||||
|
}
|
||||||
|
\fi
|
||||||
|
|
162
lecture-notes/lectures/mkessler-lectures.sty
Normal file
162
lecture-notes/lectures/mkessler-lectures.sty
Normal file
|
@ -0,0 +1,162 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'lectures.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-lectures}[2022/06/12 - Package for managing different lectures within a document]
|
||||||
|
|
||||||
|
|
||||||
|
% The core of the lecture command this package provides has been taken from the preamble in
|
||||||
|
% https://github.com/gillescastel/university-setup
|
||||||
|
% which is licensed under
|
||||||
|
|
||||||
|
%MIT License
|
||||||
|
|
||||||
|
%Copyright (c) 2019 Gilles Castel
|
||||||
|
|
||||||
|
%Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
%of this software and associated documentation files (the "Software"), to deal
|
||||||
|
%in the Software without restriction, including without limitation the rights
|
||||||
|
%to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
%copies of the Software, and to permit persons to whom the Software is
|
||||||
|
%furnished to do so, subject to the following conditions:
|
||||||
|
%
|
||||||
|
%The above copyright notice and this permission notice shall be included in all
|
||||||
|
%copies or substantial portions of the Software.
|
||||||
|
%
|
||||||
|
%THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
%IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
%FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
%AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
%LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
%OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
%SOFTWARE.
|
||||||
|
% This package extends the lecture command to make a summary of lectures at the beginning of a document, and has thus modified this command.
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@lectures@english\mkessler@lectures@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@lectures@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@lectures@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@lectures@englishtrue}
|
||||||
|
|
||||||
|
\newif\ifmkessler@lectures@fancyhead\mkessler@lectures@fancyheadfalse
|
||||||
|
\DeclareOptionX{fancyhead}{\mkessler@lectures@fancyheadtrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-lectures}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%Tocloft package for making a list of lectures
|
||||||
|
\RequirePackage{tocloft}
|
||||||
|
%Store name of the summary in a command to use it multiple times
|
||||||
|
\newcommand\mkessler@lectures@listlecturename{\ifmkessler@lectures@english Summary of lectures\else Übersicht der Vorlesungen\fi}
|
||||||
|
\newlistof{lecture}{lec}{\mkessler@lectures@listlecturename} % Declare new list of lectures
|
||||||
|
%Settings how to print the summary
|
||||||
|
\renewcommand{\cftdot}{}
|
||||||
|
\renewcommand\cftlecturefont{\normalfont\bfseries}
|
||||||
|
\renewcommand\cftlecturepagefont{\normalfont\bfseries}
|
||||||
|
\renewcommand\cftlectitlefont{\Large\bfseries}
|
||||||
|
\renewcommand\cftbeforelectureskip{1em}
|
||||||
|
|
||||||
|
%Command to parse the date
|
||||||
|
\RequirePackage{xifthen}
|
||||||
|
\def\testdateparts#1{\dateparts#1\relax}
|
||||||
|
\def\dateparts#1 #2 #3 #4 #5\relax{
|
||||||
|
\marginpar{\small\textsf{\mbox{#1 #2 #3 #5}}}
|
||||||
|
}
|
||||||
|
|
||||||
|
%Define the main lecture command to start a new lecture
|
||||||
|
\def\mkessler@lectures@lectureprefix{\ifmkessler@lectures@english Lecture\else Vorlesung\fi}
|
||||||
|
\def\@lecture{}%
|
||||||
|
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
|
||||||
|
% \lecture[keywords]{date}[number]{title}[margin note]
|
||||||
|
\NewDocumentCommand{\lecture}{ O{} m O{} m O{}}{
|
||||||
|
\ifthenelse{\isempty{#3}}{\refstepcounter{lecture}}{\setcounter{lecture}{#3}}
|
||||||
|
%Store lecture name in the macro \@lecture
|
||||||
|
\ifthenelse{\isempty{#4}}{%
|
||||||
|
\def\@lecture{\mkessler@lectures@lectureprefix\, \thelecture}%
|
||||||
|
}{%
|
||||||
|
\def\@lecture{\mkessler@lectures@lectureprefix\, \thelecture: #4}%
|
||||||
|
}%
|
||||||
|
\marginpar{\small\textsf{\parbox{10em}{\mkessler@lectures@lectureprefix\, \thelecture \\#2}}}
|
||||||
|
%Add lecture as an entry to the lectures file
|
||||||
|
\addcontentsline{lec}{lecture}{\mkessler@lectures@lectureprefix\,\thelecture\,(#2)}
|
||||||
|
%If key words are provided, add the key words of the lecture below the entry
|
||||||
|
\ifthenelse{\isempty{#1}}{}{\addtocontents{lec}{\smallskip\hspace{1.5em}\protect\parbox{\dimexpr\textwidth-\@pnumwidth - 2em}{#1}}}
|
||||||
|
}
|
||||||
|
|
||||||
|
%Provide a command to show the summary of lectures
|
||||||
|
\DeclareRobustCommand*{\summaryoflectures}{
|
||||||
|
\phantomsection
|
||||||
|
\addcontentsline{toc}{section}{\mkessler@lectures@listlecturename}
|
||||||
|
\thispagestyle{plain}
|
||||||
|
\listoflecture
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\ifmkessler@lectures@fancyhead
|
||||||
|
\RequirePackage{fancyhdr}
|
||||||
|
\pagestyle{fancy}
|
||||||
|
|
||||||
|
% LE: left even
|
||||||
|
% RO: right odd
|
||||||
|
% CE, CO: center even, center odd
|
||||||
|
|
||||||
|
\fancyhead[RO,LE]{\@lecture} % Right odd, Left even
|
||||||
|
\fancyhead[RE,LO]{} % Right even, Left odd
|
||||||
|
|
||||||
|
%%No fancy headers in the appendix (as there is no lecture)
|
||||||
|
\let\mkessler@lectures@stored@appendix\appendix
|
||||||
|
\renewcommand\appendix{
|
||||||
|
\mkessler@lectures@stored@appendix
|
||||||
|
\fancyhead[RO,LE]{}
|
||||||
|
\renewcommand{\headrulewidth}{0pt}
|
||||||
|
}
|
||||||
|
\fi
|
219
lecture-notes/script/mkessler-script.cls
Normal file
219
lecture-notes/script/mkessler-script.cls
Normal file
|
@ -0,0 +1,219 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This class has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'script.pycls'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the class again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX class is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the class sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesClass{mkessler-script}[2022/06/12 - Write up lecture notes as script]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@script@english\mkessler@script@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@script@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@script@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@script@englishtrue}
|
||||||
|
|
||||||
|
\newif\ifmkessler@script@showversion\mkessler@script@showversiontrue
|
||||||
|
\DeclareOptionX{show version}{\mkessler@script@showversiontrue}
|
||||||
|
\DeclareOptionX{hideversion}{\mkessler@script@showversionfalse}
|
||||||
|
|
||||||
|
\newif\ifmkessler@script@fancyfoot\mkessler@script@fancyfootfalse
|
||||||
|
\DeclareOptionX{fancyfoot}{\mkessler@script@fancyfoottrue}
|
||||||
|
|
||||||
|
|
||||||
|
\newif\ifmkessler@script@gitversion\mkessler@script@gitversionfalse
|
||||||
|
\DeclareOptionX{git}{\mkessler@script@gitversiontrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\ClassWarning{mkessler-script}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xifthen}
|
||||||
|
|
||||||
|
%%%%Define command to set metainformation of document
|
||||||
|
%Set the course
|
||||||
|
\def\@course{\ClassError{mkessler-script}{No \noexpand\course given}{See documentation for details}}%
|
||||||
|
\DeclareRobustCommand*{\course}[1]{\gdef\@course{#1}}
|
||||||
|
|
||||||
|
\def\@lecturer{\ClassError{mkessler-script}{No \noexpand\lecturer given}{See documentation for details}}%
|
||||||
|
\def\@lecturertitle{}
|
||||||
|
\DeclareRobustCommand*{\lecturer}[2][]{
|
||||||
|
\gdef\@lecturer{#2}
|
||||||
|
\gdef\@lecturertitle{\ifmkessler@script@english Lecturer\else\ifthenelse{\isempty{#1}}{Dozent}{Dozentin}\fi}{}
|
||||||
|
}
|
||||||
|
|
||||||
|
%Set the assistant
|
||||||
|
\newif\ifmkessler@script@printassistant\mkessler@script@printassistantfalse
|
||||||
|
\def\@assistant{}%
|
||||||
|
\def\@assistantitle{}
|
||||||
|
\DeclareRobustCommand*{\assistant}[2][]{
|
||||||
|
\mkessler@script@printassistanttrue
|
||||||
|
\gdef\@assistant{#2}
|
||||||
|
\gdef\@assistanttitle{\ifmkessler@script@english Assistant\else\ifthenelse{\isempty{#1}}{Assistent}{Assistentin}\fi}
|
||||||
|
}
|
||||||
|
|
||||||
|
%%%%Load base class article
|
||||||
|
\LoadClass{article}
|
||||||
|
|
||||||
|
\ifmkessler@script@showversion
|
||||||
|
\ifmkessler@script@gitversion
|
||||||
|
\RequirePackage[dirty={ (local changes have been made!)}]{gitinfo2}
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
|
||||||
|
|
||||||
|
%%%%Title
|
||||||
|
%Define layout of title using course, lecturer, assistant and author, and optionally the current time
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
\RequirePackage{datetime}
|
||||||
|
\renewcommand\@maketitle{%
|
||||||
|
\newpage
|
||||||
|
\null
|
||||||
|
\vskip 2em%
|
||||||
|
\begin{center}%
|
||||||
|
\let \footnote \thanks
|
||||||
|
{\LARGE \@course \par}%
|
||||||
|
\vskip 1.5em%
|
||||||
|
{\large
|
||||||
|
\lineskip .5em%
|
||||||
|
\begin{tabular}[t]{c}%
|
||||||
|
\@lecturertitle \\
|
||||||
|
{\sc \@lecturer} \\
|
||||||
|
\end{tabular}\par
|
||||||
|
\ifmkessler@script@printassistant
|
||||||
|
\vskip 1em%
|
||||||
|
\begin{tabular}[t]{c}%
|
||||||
|
\@assistanttitle \\
|
||||||
|
{\sc \@assistant} \\
|
||||||
|
\end{tabular}\par
|
||||||
|
\fi
|
||||||
|
\vskip 1em%
|
||||||
|
\begin{tabular}[t]{c}%
|
||||||
|
\ifmkessler@script@english Notes\else Mitschrift\fi \\
|
||||||
|
{\sc \@author} \\
|
||||||
|
\end{tabular}
|
||||||
|
\par}%
|
||||||
|
\ifmkessler@script@showversion
|
||||||
|
\vskip 3em%
|
||||||
|
\begin{tabular}[t]{c}%
|
||||||
|
{\small Version} \\
|
||||||
|
\ifmkessler@script@gitversion
|
||||||
|
git: \gitFirstTagDescribe\\
|
||||||
|
\ifmkessler@script@english compiled\else kompiliert\fi:
|
||||||
|
\fi\today\,\currenttime \\
|
||||||
|
\end{tabular}\par
|
||||||
|
\fi
|
||||||
|
\vskip 4em%
|
||||||
|
\end{center}%
|
||||||
|
\par
|
||||||
|
\vskip 1.5em
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%%%The following is based on the repository
|
||||||
|
% https://github.com/gillescastel/university-setup
|
||||||
|
% but has been modified for own purposes. The original content is distributed under the following license:
|
||||||
|
|
||||||
|
%MIT License
|
||||||
|
|
||||||
|
%Copyright (c) 2019 Gilles Castel
|
||||||
|
|
||||||
|
%Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
%of this software and associated documentation files (the "Software"), to deal
|
||||||
|
%in the Software without restriction, including without limitation the rights
|
||||||
|
%to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
%copies of the Software, and to permit persons to whom the Software is
|
||||||
|
%furnished to do so, subject to the following conditions:
|
||||||
|
%
|
||||||
|
%The above copyright notice and this permission notice shall be included in all
|
||||||
|
%copies or substantial portions of the Software.
|
||||||
|
%
|
||||||
|
%THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
%IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
%FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
%AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
%LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
%OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
%SOFTWARE.
|
||||||
|
|
||||||
|
%%%% These are the fancy headers
|
||||||
|
|
||||||
|
\ifmkessler@script@fancyfoot
|
||||||
|
\RequirePackage{fancyhdr}
|
||||||
|
\pagestyle{fancy}
|
||||||
|
|
||||||
|
% LE: left even
|
||||||
|
% RO: right odd
|
||||||
|
% CE, CO: center even, center odd
|
||||||
|
|
||||||
|
\fancyhead[RO,LE]{} % Right odd, Left even
|
||||||
|
\fancyhead[RE,LO]{} % Right even, Left odd
|
||||||
|
|
||||||
|
\fancyfoot[RO,LE]{\thepage} % Right odd, Left even
|
||||||
|
\fancyfoot[RE,LO]{} % Right even, Left odd
|
||||||
|
\fancyfoot[C]{\leftmark} % Center
|
||||||
|
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% Fix some stuff
|
||||||
|
% %http://tex.stackexchange.com/questions/76273/multiple-pdfs-with-page-group-included-in-a-single-page-warning
|
||||||
|
\pdfsuppresswarningpagegroup=1
|
||||||
|
|
||||||
|
% Fix some spacing
|
||||||
|
% http://tex.stackexchange.com/questions/22119/how-can-i-change-the-spacing-before-theorems-with-amsthm
|
||||||
|
\def\thm@space@setup{%
|
||||||
|
\thm@preskip=\parskip \thm@postskip=0pt
|
||||||
|
}
|
||||||
|
|
||||||
|
% Don't indent paragraphs, leave some space between them
|
||||||
|
\RequirePackage{parskip}
|
||||||
|
|
||||||
|
% Hide page number when page is empty
|
||||||
|
\RequirePackage{emptypage}
|
221
math/categories/mkessler-categories.sty
Normal file
221
math/categories/mkessler-categories.sty
Normal file
|
@ -0,0 +1,221 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'categories.pysty3'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-25-ge9f75cd (commit e9f75cd)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesExplPackage{mkessler-categories}{2022/06/27}{2.9-25-ge9f75cd}{Definitions of categories with automatic indexing}
|
||||||
|
|
||||||
|
%% Wrapper commands specific for defining categories
|
||||||
|
|
||||||
|
\RequirePackage{mkessler-symbindex}
|
||||||
|
\RequirePackage{translator}
|
||||||
|
\RequirePackage{amsmath}
|
||||||
|
|
||||||
|
\usedictionary{translator-mathematical-categories-dictionary}
|
||||||
|
|
||||||
|
\NewDocumentCommand{\category}{ m }
|
||||||
|
{
|
||||||
|
\operatorname{\textup{\textbf{#1}}}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\NewDocumentCommand{\DeclareCategory}{ O{} m }
|
||||||
|
{
|
||||||
|
\DeclareSymbol[group = categories, #1]{#2}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\NewDocumentCommand{\DeclareSimpleCategory}{ o m o}
|
||||||
|
{
|
||||||
|
\IfValueTF{#1}
|
||||||
|
{
|
||||||
|
\IfValueTF{#3}
|
||||||
|
{
|
||||||
|
\DeclareCategory[operator = \category, description = #3, #1]{#2}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\DeclareCategory[operator = \category, #1]{#2}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\IfValueTF{#3}
|
||||||
|
{
|
||||||
|
\DeclareCategory[operator = \category, description = #3]{#2}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\DeclareCategory[operator = \category]{#2}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\NewDocumentCommand{\MakeCategoryIndex}{ }
|
||||||
|
{
|
||||||
|
\printindex[categories]
|
||||||
|
}
|
||||||
|
|
||||||
|
\makeindex
|
||||||
|
[
|
||||||
|
name = categories,
|
||||||
|
title = \translate{Index~of~categories}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
%%%% Categories
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Top }
|
||||||
|
[
|
||||||
|
\translate{Top~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ hTop }
|
||||||
|
[
|
||||||
|
\translate{hTop~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Set }
|
||||||
|
[
|
||||||
|
\translate{Set~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ CHaus }
|
||||||
|
[
|
||||||
|
\translate{CHaus~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Grp }
|
||||||
|
[
|
||||||
|
\translate{Grp~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Ab }
|
||||||
|
[
|
||||||
|
\translate{Ab~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ CRing }
|
||||||
|
[
|
||||||
|
\translate{CRing~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Ring }
|
||||||
|
[
|
||||||
|
\translate{Ring~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
[
|
||||||
|
defaultargs = _k
|
||||||
|
]
|
||||||
|
{ Vect }
|
||||||
|
[
|
||||||
|
\translate{Vect~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Cat }
|
||||||
|
[
|
||||||
|
\translate{Cat~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
[
|
||||||
|
defaultargs = _R
|
||||||
|
]
|
||||||
|
{ Mod }
|
||||||
|
[
|
||||||
|
\translate{Mod~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
[
|
||||||
|
defaultargs = _k
|
||||||
|
]
|
||||||
|
{ Alg }
|
||||||
|
[
|
||||||
|
\translate{Alg~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Field }
|
||||||
|
[
|
||||||
|
\translate{Field~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
[
|
||||||
|
defaultargs = _k
|
||||||
|
]
|
||||||
|
{ AffVar }
|
||||||
|
[
|
||||||
|
\translate{AffVar~(Category~description)}
|
||||||
|
]
|
||||||
|
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ Sch }
|
||||||
|
[
|
||||||
|
\translate{Sch~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ GrAb }
|
||||||
|
[
|
||||||
|
\translate{GrAb~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
{ CGHaus }
|
||||||
|
[
|
||||||
|
\translate{CGHaus~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareSimpleCategory
|
||||||
|
[
|
||||||
|
formula = S
|
||||||
|
]
|
||||||
|
{ SimplicialSet }
|
||||||
|
[
|
||||||
|
\translate{SimplicialSet~(Category~description)}
|
||||||
|
]
|
||||||
|
\DeclareCategory
|
||||||
|
[
|
||||||
|
operator = \operatorname,
|
||||||
|
formula = \Delta,
|
||||||
|
ordered = Ordinal,
|
||||||
|
description = \translate{Ordinal ~ number ~ category ~ (Category ~ description)}
|
||||||
|
]
|
||||||
|
{OrdCat}
|
|
@ -0,0 +1,70 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This dictionary has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathematical-categories.pydict'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the dictionary again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-24-g80377fc (commit 80377fc)
|
||||||
|
%
|
||||||
|
% This LaTeX dictionary is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the dictionary sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesDictionary{translator-mathematical-categories-dictionary}{English}
|
||||||
|
|
||||||
|
\providetranslation{Index of categories}{Index of categories}
|
||||||
|
\providetranslation{Top (Category description)}{spaces and continuous maps}
|
||||||
|
\providetranslation{Set (Category description)}{Sets and functions}
|
||||||
|
\providetranslation{hTop (Category description)}{Spaces and homotopy classes of continuous maps}
|
||||||
|
\providetranslation{CHaus (Category description)}{Compact hausdorff spaces and continuous maps}
|
||||||
|
\providetranslation{Grp (Category description)}{Groups and homomorphisms}
|
||||||
|
\providetranslation{Ab (Category description)}{Abelian groups and homomorphisms}
|
||||||
|
\providetranslation{CRing (Category description)}{Commutative rings and homomorphisms}
|
||||||
|
\providetranslation{Ring (Category description)}{Rings and homomorphisms}
|
||||||
|
\providetranslation{Vect (Category description)}{$k$-vector spaces and linear maps}
|
||||||
|
\providetranslation{Cat (Category description)}{Small categories and functors}
|
||||||
|
\providetranslation{Mod (Category description)}{Left $R$-modules and homomorphisms}
|
||||||
|
\providetranslation{Alg (Category description)}{$k$-algebras and homomorphisms}
|
||||||
|
\providetranslation{Field (Category description)}{Fields and field extensions}
|
||||||
|
\providetranslation{AffVar (Category description)}{Affine Varieties over $k$}
|
||||||
|
\providetranslation{Sch (Category description)}{Schemes and homomorphisms}
|
||||||
|
\providetranslation{GrAb (Category description)}{Graded abelian groups and homomorphisms}
|
||||||
|
\providetranslation{Ordinal number category (Category description)}{Finite ordinal numbers and order-preserving maps}
|
||||||
|
\providetranslation{CGHaus (Category description)}{Compactly generated Hausdorff spaces and continuous maps}
|
||||||
|
\providetranslation{SimplicialSet (Category description)}{Functor category $[\OrdCat, \Set]$}
|
|
@ -0,0 +1,70 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This dictionary has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathematical-categories.pydict'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the dictionary again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-24-g80377fc (commit 80377fc)
|
||||||
|
%
|
||||||
|
% This LaTeX dictionary is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the dictionary sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesDictionary{translator-mathematical-categories-dictionary}{German}
|
||||||
|
|
||||||
|
\providetranslation{Index of categories}{Kategorienverzeichnis}
|
||||||
|
\providetranslation{Top (Category description)}{Räume und stetige Abbildungen}
|
||||||
|
\providetranslation{Set (Category description)}{Mengen und Funktionen}
|
||||||
|
\providetranslation{hTop (Category description)}{Räume und Homotopieklassen von stetigen Abbildungen}
|
||||||
|
\providetranslation{CHaus (Category description)}{Kompakte Hausdorffräume und stetige Abbildungen}
|
||||||
|
\providetranslation{Grp (Category description)}{Gruppen und Homomorphismen}
|
||||||
|
\providetranslation{Ab (Category description)}{Abelsche Gruppen und Homomoorphismen}
|
||||||
|
\providetranslation{CRing (Category description)}{Kommutative Ringe und Homomorphismen}
|
||||||
|
\providetranslation{Ring (Category description)}{Ringe und Homomorphismen}
|
||||||
|
\providetranslation{Vect (Category description)}{Vektorräume und lineare Abbildungen}
|
||||||
|
\providetranslation{Cat (Category description)}{Kleine Kategorien und Funktoren}
|
||||||
|
\providetranslation{Mod (Category description)}{$R$-Linksmodule und Homomorphismen}
|
||||||
|
\providetranslation{Alg (Category description)}{$k$-Algebren und Homomorphismen}
|
||||||
|
\providetranslation{Field (Category description)}{Körper und Körpererweiterungen}
|
||||||
|
\providetranslation{AffVar (Category description)}{Affine Varietäten über $k$}
|
||||||
|
\providetranslation{Sch (Category description)}{Schemata und Homomorphismen}
|
||||||
|
\providetranslation{GrAb (Category description)}{Graduierte Gruppen und Homomorphismen}
|
||||||
|
\providetranslation{Ordinal number category (Category description)}{Endliche Ordinalzahlen und ordnungserhaltende Abbildungen}
|
||||||
|
\providetranslation{CGHaus (Category description)}{Kompakt erzeugte Hausdorffräume und stetige Abbildungen}
|
||||||
|
\providetranslation{SimplicialSet (Category description)}{Funktorkategorie $[\OrdCat, \Set]$}
|
94
math/faktor/mkessler-faktor.sty
Normal file
94
math/faktor/mkessler-faktor.sty
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'faktor.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-faktor}[2022/06/12 - Faktor package that also handles cofaktors]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% Extension the faktor package for
|
||||||
|
% - cofaktor command that provides A \ B notation
|
||||||
|
% - scaling the / in the middle
|
||||||
|
% - fine positioning of enumerator / denominator
|
||||||
|
|
||||||
|
% This is essentially taken from the stackexchange question found at
|
||||||
|
% https://tex.stackexchange.com/questions/27591/extending-the-faktor-package
|
||||||
|
% and answered by 'Werner' (https://tex.stackexchange.com/users/5764/werner)
|
||||||
|
%
|
||||||
|
% This package only packages the corresponding answer and provides an analoguous way of a \cofactor command
|
||||||
|
|
||||||
|
%Dependencies
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
\RequirePackage{amssymb} % provides \diagup and \diagdown
|
||||||
|
\RequirePackage{ifthen} % ifthenelse syntax
|
||||||
|
\RequirePackage{mathtools}
|
||||||
|
|
||||||
|
|
||||||
|
\DeclareDocumentCommand{\faktor}{s O{0.5} m O{-0.5} m}{% \newfaktor[*][#2]{#3}[#4]{#5} -> #3/#5
|
||||||
|
\setbox0=\hbox{\ensuremath{#3}}% Store numerator
|
||||||
|
\setbox1=\hbox{\ensuremath{\diagup}}% Store slash /
|
||||||
|
\setbox2=\hbox{\ensuremath{#5}}% Store denominator
|
||||||
|
\raisebox{#2\ht1}{\usebox0}% Numerator
|
||||||
|
\mkern-5mu\ifthenelse{\equal{#1}{\BooleanTrue}}% Slash /
|
||||||
|
{\diagup}% regular \faktor slash
|
||||||
|
{\rotatebox{-44}{\rule[#4\ht2]{0.4pt}{-#4\ht2+#2\ht0+\ht0}}}% tilted rule as a slash
|
||||||
|
\mkern-4mu%
|
||||||
|
\raisebox{#4\ht2}{\usebox2}% Denominator
|
||||||
|
}
|
||||||
|
|
||||||
|
\DeclareDocumentCommand{\cofaktor}{s O{-0.5} m O{0.5} m}{% \newfaktor[*][#2]{#3}[#4]{#5} -> #2\#4
|
||||||
|
\setbox0=\hbox{\ensuremath{#3}}% Store numerator
|
||||||
|
\setbox1=\hbox{\ensuremath{\diagdown}}% Store slash /
|
||||||
|
\setbox2=\hbox{\ensuremath{#5}}% Store denominator
|
||||||
|
\raisebox{#2\ht1}{\usebox0}% Numerator
|
||||||
|
\mkern-5mu\ifthenelse{\equal{#1}{\BooleanTrue}}% Slash /
|
||||||
|
{\diagdown}% regular \faktor slash
|
||||||
|
{\rotatebox{44}{\rule[-#4\ht2]{0.4pt}{#4\ht2-#2\ht0+\ht0}}}% tilted rule as a slash
|
||||||
|
\mkern-4mu%
|
||||||
|
\raisebox{#4\ht2}{\usebox2}% Denominator
|
||||||
|
}
|
98
math/mathalias/mkessler-mathalias.sty
Normal file
98
math/mathalias/mkessler-mathalias.sty
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathalias.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-mathalias}[2022/06/12 - Easy aliasing for math style commands]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@mathalias@basic\mkessler@mathalias@basicfalse
|
||||||
|
\newif\ifmkessler@mathalias@extended\mkessler@mathalias@extendedfalse
|
||||||
|
|
||||||
|
\DeclareOptionX{basic}{\mkessler@mathalias@basictrue}
|
||||||
|
\DeclareOptionX{extended}{\mkessler@mathalias@extendedtrue\mkessler@mathalias@basictrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-mathalias}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%Usage: \MakeAliasesForwith\<mathcommand>{<prefix>}{<Set of letters>}
|
||||||
|
% to declare commands of form \<prefix><Letter> as \<mathcommand>{<Letter>} for each
|
||||||
|
% of the specfied letters
|
||||||
|
%
|
||||||
|
% E.g. \MakeAliasesForwith\mathcal{c}{ABC} will declare
|
||||||
|
% \cA \cB \cC \cD as \mathcal{A}, \mathcal{B}, \mathcal{C}
|
||||||
|
% This is also ensuring math context, so that
|
||||||
|
% \cA will be valid even in normal text.
|
||||||
|
|
||||||
|
\NewDocumentCommand{\MakeAliasesForwith}{m m m}
|
||||||
|
{
|
||||||
|
\def\mkessler@mathalias@makealias##1{
|
||||||
|
\expandafter\def\csname #2##1\endcsname{\ensuremath{#1{##1}}}
|
||||||
|
}
|
||||||
|
\def\mkessler@mathalias@recurse##1{
|
||||||
|
\ifx##1\mkessler@mathalias@dummy\else
|
||||||
|
\mkessler@mathalias@makealias{##1}\expandafter\mkessler@mathalias@recurse\fi
|
||||||
|
}
|
||||||
|
\mkessler@mathalias@recurse #3\mkessler@mathalias@dummy
|
||||||
|
}
|
||||||
|
|
||||||
|
\def\mkessler@mathalias@all{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
|
||||||
|
|
||||||
|
\ifmkessler@mathalias@basic
|
||||||
|
\RequirePackage{amsfonts}
|
||||||
|
\MakeAliasesForwith\mathbb{}{CFKNQRZ}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
\ifmkessler@mathalias@extended
|
||||||
|
\expandafter\MakeAliasesForwith\expandafter\mathcal\expandafter{\expandafter c\expandafter}\expandafter{\mkessler@mathalias@all}
|
||||||
|
\expandafter\MakeAliasesForwith\expandafter\mathfrak\expandafter{\expandafter f\expandafter}\expandafter{\mkessler@mathalias@all}
|
||||||
|
\expandafter\MakeAliasesForwith\expandafter\mathbb\expandafter{\expandafter b\expandafter}\expandafter{\mkessler@mathalias@all}
|
||||||
|
\fi
|
123
math/mathfig/mkessler-mathfig.sty
Normal file
123
math/mathfig/mkessler-mathfig.sty
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathfig.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-26-g8c5b9ad (commit 8c5b9ad)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-mathfig}[2022/06/27 - Math figures with TikZ / pgfplots / xy]
|
||||||
|
|
||||||
|
|
||||||
|
% This is just a collection of the packages I use to typeset mathematical figures
|
||||||
|
% most commonly plots, commutative diagrams or geometry
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{pgfplots} % Plots
|
||||||
|
\pgfplotsset{compat=1.7}
|
||||||
|
|
||||||
|
\RequirePackage{tikz} % Plots / drawings
|
||||||
|
\usetikzlibrary{calc, intersections, through, quotes, angles, babel, positioning, snakes, decorations.markings}
|
||||||
|
|
||||||
|
\RequirePackage{tikz-cd} %Commutative diagrams
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
|
||||||
|
|
||||||
|
%%for small diagrams, similar to tikz-cd
|
||||||
|
\RequirePackage[all]{xy} % for small diagrams, e.g. arrows
|
||||||
|
%%% In older versions, you found
|
||||||
|
% \RequirePackage{xy}
|
||||||
|
% \xyoption{all}
|
||||||
|
% here, but this messes with the catcode of the @ sign (which no package should do!)
|
||||||
|
% so that further parts in this package would get broken
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand\pushoutsymbol{\tikz[baseline=0.5,scale=0.2]{
|
||||||
|
\draw[-] (0,0) --(0,1) -- (1,1);
|
||||||
|
\draw (1,0) circle (1.5pt);}
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand\pullbacksymbol{\tikz[baseline=0.5,scale=0.2]{
|
||||||
|
\draw[-] (0,0) --(1,0) -- (1,1);
|
||||||
|
\draw (0,1) circle (1.5pt);}
|
||||||
|
}
|
||||||
|
|
||||||
|
% This is used in a tikzcd
|
||||||
|
\NewDocumentCommand\pushout{ O{dr} }{
|
||||||
|
\arrow[phantom, pos=0.45]{#1}{\pushoutsymbol}
|
||||||
|
}
|
||||||
|
|
||||||
|
% This is used in a tikzcd
|
||||||
|
\NewDocumentCommand\pullback{ O{dr} }{
|
||||||
|
\arrow[phantom, pos=0.45]{#1}{\pullbacksymbol}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% Fix for equal arrows in tikz, see
|
||||||
|
% https://tex.stackexchange.com/questions/443017/equal-arrows-without-transparent-ends-possible-in-tikzcd
|
||||||
|
|
||||||
|
\tikzset {
|
||||||
|
double line with arrow/.style args =
|
||||||
|
{#1,#2}%
|
||||||
|
{
|
||||||
|
decorate, decoration =
|
||||||
|
{
|
||||||
|
markings,
|
||||||
|
mark = at position 0 with
|
||||||
|
{
|
||||||
|
\coordinate (ta-base-1) at (0,1pt);
|
||||||
|
\coordinate (ta-base-2) at (0,-1pt);
|
||||||
|
}
|
||||||
|
,
|
||||||
|
mark = at position 1 with
|
||||||
|
{
|
||||||
|
\draw[#1] (ta-base-1) -- (0,1pt);
|
||||||
|
\draw[#2] (ta-base-2) -- (0,-1pt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\tikzset{Equal/.style={-,double line with arrow={-,-}}}
|
90
math/mathfixes/mkessler-mathfixes.sty
Normal file
90
math/mathfixes/mkessler-mathfixes.sty
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathfixes.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-mathfixes}[2022/06/12 - Hacky math packages for some (custom) fixes]
|
||||||
|
|
||||||
|
|
||||||
|
% This just brings together some (possibly ugly) hacks that I use when writing math. Likely, you do not want to use this except when building around this package (like I did), or already have similar shortcuts
|
||||||
|
|
||||||
|
%Proper Degree command
|
||||||
|
\def\mkessler@mathfixes@degree{\ensuremath{^\circ}}
|
||||||
|
\AtBeginDocument{\let\degree\mkessler@mathfixes@degree}
|
||||||
|
|
||||||
|
% Always put limits under \limit
|
||||||
|
\let\oldlim\lim\def\lim{\oldlim\limits}
|
||||||
|
|
||||||
|
% Print equal sign under subset by default to not confuse people
|
||||||
|
% (I still write \subset, because this enables me remove this renewcommand and have the default \subset command evaluated instead
|
||||||
|
\let\mkessler@mathfixes@subseteq\subseteq
|
||||||
|
\let\mkessler@mathfixes@supseteq\supseteq
|
||||||
|
\AtBeginDocument{
|
||||||
|
\let\subset\mkessler@mathfixes@subseteq
|
||||||
|
\let\supset\mkessler@mathfixes@supseteq
|
||||||
|
}
|
||||||
|
|
||||||
|
%%Renew phi and epsilon to their proper versions, make the old ones available as
|
||||||
|
% uglyphi and uglyepsilon
|
||||||
|
|
||||||
|
\let\mkessler@mathfixes@stored@phi\phi
|
||||||
|
\let\mkessler@mathfixes@stored@varphi\varphi
|
||||||
|
\AtBeginDocument{
|
||||||
|
\let\phi\mkessler@mathfixes@stored@varphi
|
||||||
|
\let\varphi\mkessler@mathfixes@stored@varphi
|
||||||
|
\let\uglyphi\mkessler@mathfixes@stored@phi
|
||||||
|
\let\oldphi\mkessler@mathfixes@stored@phi
|
||||||
|
\let\goldenratio\mkessler@mathfixes@stored@phi
|
||||||
|
}
|
||||||
|
|
||||||
|
\let\mkessler@mathfixes@stored@epsilon\epsilon
|
||||||
|
\let\mkessler@mathfixes@stored@varepsilon\varepsilon
|
||||||
|
\AtBeginDocument{
|
||||||
|
\let\epsilon\mkessler@mathfixes@stored@varepsilon
|
||||||
|
\let\uglyepsilon\mkessler@mathfixes@stored@epsilon
|
||||||
|
\let\oldepsilon\mkessler@mathfixes@stored@epsilon
|
||||||
|
}
|
75
math/mathfont/mkessler-mathfont.sty
Normal file
75
math/mathfont/mkessler-mathfont.sty
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathfont.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-mathfont}[2022/06/12 - Collects several math fonts together]
|
||||||
|
|
||||||
|
|
||||||
|
%%% Store away the several (partially conflicting) fonts in internal macros
|
||||||
|
|
||||||
|
\let\mkessler@mathfont@none@mathcal\mathcal
|
||||||
|
|
||||||
|
\RequirePackage{mathrsfs}
|
||||||
|
\let\mkessler@mathfont@mathrsfs@mathscr\mathscr
|
||||||
|
|
||||||
|
\RequirePackage[mathscr]{eucal}
|
||||||
|
\let\mkessler@mathfont@eucal@optionmathscr@mathscr\mathscr
|
||||||
|
|
||||||
|
\RequirePackage{amsfonts}
|
||||||
|
\let\mkessler@mathfont@amsfonts@mathfrak\mathfrak
|
||||||
|
|
||||||
|
%%% Provide user commands to internally stored macros
|
||||||
|
\def\mkessler@mathfont@restorefonts{
|
||||||
|
\let\mathcal\mkessler@mathfont@none@mathcal % Set \mathcal to default calligrapic
|
||||||
|
\let\mathfrak\mkessler@mathfont@amsfonts@mathfrak % Set \mathfrak to mathfrak from amsfonts
|
||||||
|
\let\mathscr\mkessler@mathfont@mathrsfs@mathscr % Set \mathscr to mathscript from mathrsfs package
|
||||||
|
\let\mathcat\mkessler@mathfont@mathrsfs@mathscr % Set \mathcat to mathscript from mathrsfs package
|
||||||
|
\let\mathcalo\mkessler@mathfont@eucal@optionmathscr@mathscr % Set \mathcalo (for old calligraphic) to \mathscr from [mathscr]{eucal} package
|
||||||
|
}
|
||||||
|
|
||||||
|
\AtBeginDocument{\mkessler@mathfont@restorefonts}
|
270
math/mathop/mkessler-mathop.sty
Normal file
270
math/mathop/mkessler-mathop.sty
Normal file
|
@ -0,0 +1,270 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathop.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-mathop}[2022/06/12 - Math Operator Package]
|
||||||
|
|
||||||
|
|
||||||
|
%Provides some commonly used Operators used in the write-ups of my lecture notes
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@mathop@english\mkessler@mathop@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@mathop@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@mathop@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@mathop@englishtrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-mathop}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%%%%%Package dependencies
|
||||||
|
\RequirePackage{amsmath}
|
||||||
|
\RequirePackage{bbm}
|
||||||
|
\RequirePackage{mathtools}
|
||||||
|
|
||||||
|
%%%%Different types of operator wrappers:
|
||||||
|
|
||||||
|
% For simple math operators that are just to be printed as their name
|
||||||
|
\newcommand\DeclareSimpleMathOperator[1]{
|
||||||
|
\expandafter\providecommand\csname #1\endcsname{\operatorname{#1}}
|
||||||
|
}
|
||||||
|
|
||||||
|
%%%For distributions
|
||||||
|
%Introduce synonym for \operatorname
|
||||||
|
\newcommand\mkessler@mathop@distribution[1]{\operatorname{#1}}
|
||||||
|
%Easily declare new distributions
|
||||||
|
\newcommand\DeclareDistribution[1]{\expandafter\def\csname #1\endcsname{\mkessler@mathop@distribution{#1}}}
|
||||||
|
|
||||||
|
%%%%%%%%%%% Operators
|
||||||
|
%Basic commands
|
||||||
|
\DeclareSimpleMathOperator{id}
|
||||||
|
\DeclareSimpleMathOperator{im}
|
||||||
|
\DeclareSimpleMathOperator{Bild}
|
||||||
|
\DeclareSimpleMathOperator{dom}
|
||||||
|
\DeclareSimpleMathOperator{Span}
|
||||||
|
\DeclareSimpleMathOperator{Aut}
|
||||||
|
\DeclareMathOperator{\rhs}{RHS} %Right hand side of equation
|
||||||
|
\DeclareMathOperator{\lhs}{LHS} %Left hand side of equation
|
||||||
|
|
||||||
|
%%Provide \ggT \gcd \kgV \lcm for 'greatest common denominator' and 'least common multiple'
|
||||||
|
% \ggT und \gcd, as well as \kgV and \lcm are synonyms and language-aware, so that
|
||||||
|
% e.g. when the german language option is loaded, even
|
||||||
|
% \lcm would print 'kgV'
|
||||||
|
% The starred versions of the four commands will ignore the language option and print their
|
||||||
|
% exact names (without the *, of course)
|
||||||
|
\DeclareMathOperator{\@mkessler@mathop@ggT}{ggT}
|
||||||
|
\DeclareMathOperator{\@@mkessler@mathop@ggT}{\ifmkessler@mathop@english gcd\else ggT\fi}
|
||||||
|
\def\ggT{\@ifstar\@mkessler@mathop@ggT\@@mkessler@mathop@ggT}
|
||||||
|
|
||||||
|
\DeclareMathOperator{\@mkessler@mathop@gcd}{gcd}
|
||||||
|
\DeclareMathOperator{\@@mkessler@mathop@gcd}{\ifmkessler@mathop@english gcd\else ggT\fi}
|
||||||
|
\def\gcd{\@ifstar\@mkessler@mathop@gcd\@@mkessler@mathop@gcd}
|
||||||
|
|
||||||
|
\DeclareMathOperator{\@mkessler@mathop@kgV}{kgV}
|
||||||
|
\DeclareMathOperator{\@@mkessler@mathop@kgV}{\ifmkessler@mathop@english lcm\else kgV\fi}
|
||||||
|
\def\kgV{\@ifstar\@mkessler@mathop@kgV\@@mkessler@mathop@kgV}
|
||||||
|
|
||||||
|
\DeclareMathOperator{\@mkessler@mathop@lcm}{lcm}
|
||||||
|
\DeclareMathOperator{\@@mkessler@mathop@lcm}{\ifmkessler@mathop@english lcm\else kgV\fi}
|
||||||
|
\def\lcm{\@ifstar\@mkessler@mathop@lcm\@@mkessler@mathop@lcm}
|
||||||
|
|
||||||
|
%Complex numbers
|
||||||
|
\DeclareMathOperator{\mkessler@mathop@impart}{Im}
|
||||||
|
\renewcommand\Im\mkessler@mathop@impart
|
||||||
|
\DeclareMathOperator{\mkessler@mathop@repart}{Re}
|
||||||
|
\renewcommand\Re\mkessler@mathop@repart
|
||||||
|
|
||||||
|
%Linear Algebra
|
||||||
|
\DeclareSimpleMathOperator{Sym}
|
||||||
|
\DeclareSimpleMathOperator{supp}
|
||||||
|
\DeclareSimpleMathOperator{sgn}
|
||||||
|
\DeclareSimpleMathOperator{coker}
|
||||||
|
\DeclareSimpleMathOperator{rank}
|
||||||
|
\DeclareSimpleMathOperator{rk}
|
||||||
|
\DeclareSimpleMathOperator{Mat}
|
||||||
|
\DeclareSimpleMathOperator{ev}
|
||||||
|
\DeclareSimpleMathOperator{tr}
|
||||||
|
\DeclareSimpleMathOperator{GL}
|
||||||
|
\DeclareSimpleMathOperator{PGL}
|
||||||
|
|
||||||
|
%Algebra
|
||||||
|
\DeclareSimpleMathOperator{Quot}
|
||||||
|
\DeclareSimpleMathOperator{rad}
|
||||||
|
\DeclareSimpleMathOperator{Spec}
|
||||||
|
\DeclareSimpleMathOperator{Frac}
|
||||||
|
\DeclareSimpleMathOperator{Gal}
|
||||||
|
\DeclareSimpleMathOperator{Ext}
|
||||||
|
\DeclareSimpleMathOperator{Tor}
|
||||||
|
\DeclareSimpleMathOperator{MaxSpec}
|
||||||
|
\DeclareSimpleMathOperator{Sh}
|
||||||
|
\DeclareSimpleMathOperator{Proj}
|
||||||
|
\DeclareSimpleMathOperator{QCoh}
|
||||||
|
\DeclareSimpleMathOperator{Fun}
|
||||||
|
\DeclareSimpleMathOperator{ord}
|
||||||
|
\DeclareMathOperator{\Nil}{\mathcal{N}il}
|
||||||
|
\DeclareMathOperator{\Ouv}{\mathcal{O}uv}
|
||||||
|
\DeclareMathOperator{\PreSh}{Pre-Sh}
|
||||||
|
\newcommand{\tensor}{\otimes} %Synonym for tensoring
|
||||||
|
|
||||||
|
%Analysis
|
||||||
|
\DeclareSimpleMathOperator{dx}
|
||||||
|
\DeclareSimpleMathOperator{dy}
|
||||||
|
\DeclareSimpleMathOperator{dz}
|
||||||
|
\DeclareSimpleMathOperator{dt}
|
||||||
|
|
||||||
|
%Sets
|
||||||
|
\DeclareSimpleMathOperator{conv}
|
||||||
|
\DeclareSimpleMathOperator{dist}
|
||||||
|
\DeclareSimpleMathOperator{diam}
|
||||||
|
|
||||||
|
%%Stochastic (Algorithmische Mathematik II)
|
||||||
|
\DeclareDistribution{Bin}
|
||||||
|
\DeclareDistribution{Ber}
|
||||||
|
\DeclareDistribution{Geo}
|
||||||
|
\DeclareDistribution{Poi}
|
||||||
|
\DeclareDistribution{Unif}
|
||||||
|
\DeclareDistribution{Var}
|
||||||
|
\DeclareDistribution{Cov}
|
||||||
|
|
||||||
|
%Topology
|
||||||
|
\DeclareSimpleMathOperator{pr}
|
||||||
|
\def\twedge{\vee} % Semantically correct macros for wedge product
|
||||||
|
\def\tsmash{\wedge} % Semantically correct macro for smash product
|
||||||
|
\DeclareSimpleMathOperator{sing}
|
||||||
|
\DeclareSimpleMathOperator{cell}
|
||||||
|
|
||||||
|
%Category Theory
|
||||||
|
\DeclareSimpleMathOperator{Ob}
|
||||||
|
\DeclareSimpleMathOperator{Hom}
|
||||||
|
\DeclareSimpleMathOperator{Mor}
|
||||||
|
\DeclareSimpleMathOperator{End}
|
||||||
|
\DeclareSimpleMathOperator{colim}
|
||||||
|
|
||||||
|
%Set theory
|
||||||
|
\DeclareSimpleMathOperator{card}
|
||||||
|
\DeclareSimpleMathOperator{Cd}
|
||||||
|
\DeclareSimpleMathOperator{Ord}
|
||||||
|
\DeclareSimpleMathOperator{otp}
|
||||||
|
\DeclareSimpleMathOperator{Card}
|
||||||
|
|
||||||
|
%%Galoiskohomologie
|
||||||
|
\DeclareSimpleMathOperator{Br}
|
||||||
|
\DeclareSimpleMathOperator{EXT}
|
||||||
|
\DeclareSimpleMathOperator{Ind}
|
||||||
|
\DeclareSimpleMathOperator{Char}
|
||||||
|
\DeclareSimpleMathOperator{res}
|
||||||
|
\DeclareSimpleMathOperator{inf}
|
||||||
|
\DeclareSimpleMathOperator{cov}
|
||||||
|
\newcommand{\del}{\partial} % Semantically correct operator for boundary maps
|
||||||
|
|
||||||
|
%% Algebraic geometry
|
||||||
|
\DeclareSimpleMathOperator{eq}
|
||||||
|
\DeclareSimpleMathOperator{Idem}
|
||||||
|
\DeclareSimpleMathOperator{Supp}
|
||||||
|
\DeclareSimpleMathOperator{Ann}
|
||||||
|
\DeclareSimpleMathOperator{OC}
|
||||||
|
\DeclareSimpleMathOperator{red}
|
||||||
|
\DeclareSimpleMathOperator{can}
|
||||||
|
\DeclareSimpleMathOperator{Pic}
|
||||||
|
|
||||||
|
\newcommand\leftadjoint\vdash
|
||||||
|
\newcommand\rightadjoint\dashv
|
||||||
|
|
||||||
|
% Characteristic function
|
||||||
|
\newcommand*{\cfun}{\ensuremath{\mathbbm{1}}}
|
||||||
|
\newcommand*{\One}{\cfun}
|
||||||
|
|
||||||
|
%% such that in set declarations
|
||||||
|
\newcommand{\suchthat}{\;\middle|\;}
|
||||||
|
|
||||||
|
|
||||||
|
%Paired Delimiters
|
||||||
|
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
|
||||||
|
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
|
||||||
|
|
||||||
|
%Norm and absolute value
|
||||||
|
%Make them scaling by default and have \abs*{} as the non-scaling version of the command
|
||||||
|
\DeclarePairedDelimiter\abs{\lvert}{\rvert}
|
||||||
|
\let\oldabs\abs
|
||||||
|
\def\abs{\@ifstar{\oldabs}{\oldabs*}}
|
||||||
|
|
||||||
|
\DeclarePairedDelimiter\norm{\lVert}{\rVert}
|
||||||
|
\let\oldnorm\norm
|
||||||
|
\def\norm{\@ifstar{\oldnorm}{\oldnorm*}}
|
||||||
|
|
||||||
|
\DeclareMathOperator{\amalgprod}{\star}
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand\op{\text{op}}
|
||||||
|
\newcommand\opposite{^{\op}}
|
||||||
|
|
||||||
|
\newcommand\ab{\text{ab}}
|
||||||
|
\newcommand\abelianization{^{\ab}}
|
||||||
|
|
||||||
|
|
||||||
|
\NewDocumentCommand\set{m}
|
||||||
|
{
|
||||||
|
\left\{ #1 \right\}
|
||||||
|
}
|
||||||
|
|
||||||
|
%Taken from user egreg on
|
||||||
|
% https://tex.stackexchange.com/a/22255
|
||||||
|
\newcommand\frestriction[2]{{% we make the whole thing an ordinary symbol
|
||||||
|
\left.\kern-\nulldelimiterspace % automatically resize the bar with \right
|
||||||
|
#1 % the function
|
||||||
|
\vphantom{\big|} % pretend it's a little taller at normal size
|
||||||
|
\right|_{#2} % this is the delimiter
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand\directlimit{\varinjlim}
|
||||||
|
\newcommand\inverselimit{\varprojlim}
|
||||||
|
|
||||||
|
\DeclareMathOperator*{\freeproduct}{\raisebox{-0.5ex}{\scalebox{2}{$\ast$}}}
|
||||||
|
|
96
math/mathsymb/mkessler-mathsymb.sty
Normal file
96
math/mathsymb/mkessler-mathsymb.sty
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'mathsymb.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-24-g80377fc (commit 80377fc)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-mathsymb}[2022/06/27 - Some extra math-related symbols.]
|
||||||
|
|
||||||
|
|
||||||
|
% A collection of math-related symbols / tools I often use, mainly collected together from Stack Overflow or hacked together myself
|
||||||
|
|
||||||
|
%Dependencies
|
||||||
|
\RequirePackage{tikz}
|
||||||
|
|
||||||
|
% noloc command by
|
||||||
|
% user 'egreg' (https://tex.stackexchange.com/users/4427/egreg)
|
||||||
|
% posted on
|
||||||
|
% https://tex.stackexchange.com/questions/546713/spacing-in-colon (Spacing in \colon)
|
||||||
|
% Prints a mirrored \colon correctly
|
||||||
|
\RequirePackage{amsmath}
|
||||||
|
\newcommand\noloc{%
|
||||||
|
\nobreak
|
||||||
|
\mspace{6mu plus 1mu}
|
||||||
|
{:}
|
||||||
|
\nonscript\mkern-\thinmuskip
|
||||||
|
\mathpunct{}
|
||||||
|
\mspace{2mu}
|
||||||
|
}
|
||||||
|
|
||||||
|
% \contra command from Gilles Castel, taken from
|
||||||
|
% https://github.com/gillescastel/university-setup/blob/master/preamble.tex
|
||||||
|
% (retrieved 2021-09-08)
|
||||||
|
% The preamble linked above is MIT-licensed by Gilles Castel
|
||||||
|
\RequirePackage{stmaryrd} % for \lightning
|
||||||
|
\RequirePackage{graphicx}
|
||||||
|
\newcommand\contra{\scalebox{1.5}{$\lightning$}}
|
||||||
|
|
||||||
|
%Print a warning sign
|
||||||
|
\RequirePackage{pgf}
|
||||||
|
\newcommand\Warning{%
|
||||||
|
\makebox[1.4em][c]{%
|
||||||
|
\makebox[0pt][c]{\raisebox{.1em}{\small!}}%
|
||||||
|
\makebox[0pt][c]{\color{red}\Large$\bigtriangleup$}}}%
|
||||||
|
|
||||||
|
%Make circled symbols
|
||||||
|
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
|
||||||
|
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}
|
||||||
|
}
|
||||||
|
|
||||||
|
% When dealing with chain complexes, one often uses a bullet as placeholder for the index to mean the whole chain:
|
||||||
|
\newcommand\chainbullet{\bullet}
|
||||||
|
|
||||||
|
\newcommand{\blank}{\text{--}}
|
110
quiver/mkessler-quiver.sty
Normal file
110
quiver/mkessler-quiver.sty
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'quiver.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
%MIT License
|
||||||
|
%
|
||||||
|
% Copyright (c) 2018 varkor
|
||||||
|
%
|
||||||
|
% Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
% of this software and associated documentation files (the "Software"), to deal
|
||||||
|
% in the Software without restriction, including without limitation the rights
|
||||||
|
% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
% copies of the Software, and to permit persons to whom the Software is
|
||||||
|
% furnished to do so, subject to the following conditions:
|
||||||
|
%
|
||||||
|
% The above copyright notice and this permission notice shall be included in all
|
||||||
|
% copies or substantial portions of the Software.
|
||||||
|
%
|
||||||
|
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
% SOFTWARE. *** quiver ***
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% A package for drawing commutative diagrams exported from https://q.uiver.app.
|
||||||
|
%
|
||||||
|
% This package is currently a wrapper around the `tikz-cd` package, importing necessary TikZ
|
||||||
|
% libraries, and defining a new TikZ style for curves of a fixed height.
|
||||||
|
%
|
||||||
|
% Version: 1.2.1
|
||||||
|
% Authors:
|
||||||
|
% - varkor (https://github.com/varkor)
|
||||||
|
% - AndréC (https://tex.stackexchange.com/users/138900/andr%C3%A9c)
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{quiver}[2021/01/11 quiver]
|
||||||
|
|
||||||
|
% `tikz-cd` is necessary to draw commutative diagrams.
|
||||||
|
\RequirePackage{tikz-cd}
|
||||||
|
% `amssymb` is necessary for `\lrcorner` and `\ulcorner`.
|
||||||
|
\RequirePackage{amssymb}
|
||||||
|
% `calc` is necessary to draw curved arrows.
|
||||||
|
\usetikzlibrary{calc}
|
||||||
|
% `pathmorphing` is necessary to draw squiggly arrows.
|
||||||
|
\usetikzlibrary{decorations.pathmorphing}
|
||||||
|
|
||||||
|
% A TikZ style for curved arrows of a fixed height, due to AndréC.
|
||||||
|
\tikzset{curve/.style={settings={#1},to path={(\tikztostart)
|
||||||
|
.. controls ($(\tikztostart)!\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
|
||||||
|
and ($(\tikztostart)!1-\pv{pos}!(\tikztotarget)!\pv{height}!270:(\tikztotarget)$)
|
||||||
|
.. (\tikztotarget)\tikztonodes}},
|
||||||
|
settings/.code={\tikzset{quiver/.cd,#1}
|
||||||
|
\def\pv##1{\pgfkeysvalueof{/tikz/quiver/##1}}},
|
||||||
|
quiver/.cd,pos/.initial=0.35,height/.initial=0}
|
||||||
|
|
||||||
|
% TikZ arrowhead/tail styles.
|
||||||
|
\tikzset{tail reversed/.code={\pgfsetarrowsstart{tikzcd to}}}
|
||||||
|
\tikzset{2tail/.code={\pgfsetarrowsstart{Implies[reversed]}}}
|
||||||
|
\tikzset{2tail reversed/.code={\pgfsetarrowsstart{Implies}}}
|
||||||
|
% TikZ arrow styles.
|
||||||
|
\tikzset{no body/.style={/tikz/dash pattern=on 0 off 1mm}}
|
||||||
|
|
||||||
|
\endinput
|
64
utils/counters/mkessler-counters.sty
Normal file
64
utils/counters/mkessler-counters.sty
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'counters.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-counters}[2022/06/12 - Write LaTeX counters to auxiliary file]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{etoolbox}
|
||||||
|
|
||||||
|
\newwrite\mkessler@counters@out
|
||||||
|
\immediate\openout\mkessler@counters@out\jobname.cnt\relax
|
||||||
|
\AtBeginDocument{
|
||||||
|
\let\mkessler@counters@saved@stepcounter\stepcounter
|
||||||
|
\def\stepcounter#1{
|
||||||
|
\mkessler@counters@saved@stepcounter{#1}
|
||||||
|
\immediate\write\mkessler@counters@out{#1: \csname the#1\endcsname}}
|
||||||
|
}
|
||||||
|
|
95
utils/findpackage/mkessler-findpackage.sty
Normal file
95
utils/findpackage/mkessler-findpackage.sty
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'findpackage.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-findpackage}[2022/06/12 - Find a package that provides some command]
|
||||||
|
|
||||||
|
|
||||||
|
% This is just a quick packaging of the post by
|
||||||
|
% 'Martin Nyolt' (https://tex.stackexchange.com/users/78783/martin-nyolt)
|
||||||
|
% found at
|
||||||
|
% https://tex.stackexchange.com/users/78783/martin-nyolt
|
||||||
|
% Note that SO answers are by default CC BY-SA 3.0 licensed, see
|
||||||
|
% https://creativecommons.org/licenses/by-sa/3.0/
|
||||||
|
|
||||||
|
\def\find@load#1[#2]#3[#4]{%
|
||||||
|
% load the package
|
||||||
|
\find@fileswith@pti@ns{#1}[#2]{#3}[#4]%
|
||||||
|
% check if commands exists now
|
||||||
|
\ifcsname\find@command\endcsname
|
||||||
|
\typeout{Package #3 introduces command \find@command.}%
|
||||||
|
% command has been found, revert to original version without checks
|
||||||
|
\let\@fileswith@pti@ns\find@fileswith@pti@ns
|
||||||
|
\else
|
||||||
|
% somehow, \@fileswith@pti@ns is restored after loading a package
|
||||||
|
% thus, patch it again
|
||||||
|
\let\@fileswith@pti@ns\find@load
|
||||||
|
\fi
|
||||||
|
}%
|
||||||
|
|
||||||
|
\newcommand*{\findpackagebycommand}[1]{%
|
||||||
|
% using this multiple times - esp. when the package has not been found yet -
|
||||||
|
% will break things. Thus, check first that \find@command has never been defined before
|
||||||
|
\ifx\find@command\undefined
|
||||||
|
\def\find@command{#1}%
|
||||||
|
% first, check if this command is already defined
|
||||||
|
\ifcsname\find@command\endcsname
|
||||||
|
% in this case, just issue a warning and do nothing
|
||||||
|
\@latex@warning@no@line{Command \find@command \space is already defined}%
|
||||||
|
\else
|
||||||
|
% overwrite the internal \@fileswith@pti@ns command, which does the actual loading
|
||||||
|
% \@fileswith@pti@ns is used internally by \usepackage and \RequirePackage
|
||||||
|
\let\find@fileswith@pti@ns\@fileswith@pti@ns
|
||||||
|
\let\@fileswith@pti@ns\find@load
|
||||||
|
\fi
|
||||||
|
\else
|
||||||
|
% used multiple times - prevent and give a warning
|
||||||
|
\@latex@warning@no@line{You can use \protect\findpackagebycommand \space only once}%
|
||||||
|
\errmessage{Invalid use of command findpackagebycommand.}%
|
||||||
|
\fi
|
||||||
|
}
|
112
utils/powerset/mkessler-powerset.sty
Normal file
112
utils/powerset/mkessler-powerset.sty
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'powerset.pysty3'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesExplPackage{mkessler-powerset}{2022/06/12}{2.9-14-g6545412}{Iterate over powerset of clist}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\ExplSyntaxOn
|
||||||
|
|
||||||
|
%%% Iterate over powerset of claist
|
||||||
|
|
||||||
|
\clist_new:N \l_powerset_copied_clist
|
||||||
|
\seq_new:N \l_powerset_saved_seq
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\cs_generate_variant:Nn \clist_remove_all:Nn { N V }
|
||||||
|
|
||||||
|
% Pseudocode of this macro
|
||||||
|
% remove left -> push on stack
|
||||||
|
% call recursive
|
||||||
|
% add left to 'extra'
|
||||||
|
% call recursive
|
||||||
|
% remove left from 'extra'
|
||||||
|
% add from stack to left
|
||||||
|
|
||||||
|
\cs_new:Npn \__powerset_clist_foreach_aux:Nn #1 #2
|
||||||
|
{
|
||||||
|
\clist_if_empty:NTF \l_powerset_copied_clist
|
||||||
|
{
|
||||||
|
#2
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\clist_get:NN \l_powerset_copied_clist \l_tmpa_tl
|
||||||
|
\seq_push:NV \l_powerset_saved_seq \l_tmpa_tl
|
||||||
|
\clist_pop:NN \l_powerset_copied_clist { \l_tmpa_tl }
|
||||||
|
|
||||||
|
\__powerset_clist_foreach_aux:Nn #1 {#2}
|
||||||
|
|
||||||
|
\seq_get:NN \l_powerset_saved_seq \l_tmpa_tl
|
||||||
|
\clist_put_left:NV #1 \l_tmpa_tl
|
||||||
|
|
||||||
|
\__powerset_clist_foreach_aux:Nn #1 {#2}
|
||||||
|
|
||||||
|
\seq_get:NN \l_powerset_saved_seq \l_tmpa_tl
|
||||||
|
\clist_remove_all:NV #1 \l_tmpa_tl
|
||||||
|
\clist_push:NV \l_powerset_copied_clist \l_tmpa_tl
|
||||||
|
\seq_pop:NN \l_powerset_saved_seq \l_tmpa_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
% Usage:
|
||||||
|
% \clist_use_powerset:Nn {clist variable name}{code for each subset}
|
||||||
|
% This will execute #2 for each subset of the listname given as #1
|
||||||
|
% In #2, the name given as #1 can be used for the current subset
|
||||||
|
% After execution, the value of #1 is restored
|
||||||
|
\cs_new:Npn \powerset_clist_foreach:Nn #1 #2
|
||||||
|
{
|
||||||
|
\clist_set_eq:NN \l_powerset_copied_clist #1
|
||||||
|
\clist_clear:N #1
|
||||||
|
\clist_remove_duplicates:N \l_powerset_copied_clist
|
||||||
|
|
||||||
|
\__powerset_clist_foreach_aux:Nn #1 {#2}
|
||||||
|
|
||||||
|
\clist_set_eq:NN #1 \l_powerset_copied_clist
|
||||||
|
}
|
88
wip/bibliography/mkessler-bibliography.sty
Normal file
88
wip/bibliography/mkessler-bibliography.sty
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'bibliography.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-bibliography}[2022/06/12 - Package to easily print bibliography and image attributions in document]
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@bibliography@english\mkessler@bibliography@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@bibliography@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@bibliography@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@bibliography@englishtrue}
|
||||||
|
|
||||||
|
\def\mkessler@bibliography@bibfile{bibliography.bib}
|
||||||
|
\def\mkessler@bibliography@imagefile{images.bib}
|
||||||
|
\DeclareOptionX{bibfile}[bibliography.bib]{\def\mkessler@bibliography@bibfile{#1}}
|
||||||
|
\DeclareOptionX{imagefile}[images.bib]{\def\mkessler@bibliography@imagefile{#1}}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-bibliography}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%%%%Bibliography management
|
||||||
|
\RequirePackage[backend=biber,style=alphabetic]{biblatex}
|
||||||
|
\addbibresource{\mkessler@bibliography@bibfile}
|
||||||
|
\addbibresource{\mkessler@bibliography@imagefile}
|
||||||
|
|
||||||
|
%Provide simpler commands to properly print image attributions and literature
|
||||||
|
\DeclareRobustCommand*{\printimageattributions}{
|
||||||
|
\def\imageattributionstitle{\ifmkessler@bibliography@english Image attributions \else Bildquellen\fi}
|
||||||
|
\phantomsection
|
||||||
|
\addcontentsline{toc}{section}{\imageattributionstitle}
|
||||||
|
\printbibliography[title={\imageattributionstitle}, type=image]
|
||||||
|
}
|
||||||
|
|
||||||
|
\DeclareRobustCommand*{\printliterature}{
|
||||||
|
\def\literaturetitle{\ifmkessler@bibliography@english Literature\else Literatur\fi}
|
||||||
|
\phantomsection
|
||||||
|
\addcontentsline{toc}{section}{\literaturetitle}
|
||||||
|
\printbibliography[title={\literaturetitle}, nottype=image]
|
||||||
|
|
||||||
|
}
|
198
wip/cache/mkessler-cache.sty
vendored
Normal file
198
wip/cache/mkessler-cache.sty
vendored
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'cache.pysty3'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\ProvidesExplPackage{mkessler-cache}{2022/06/12}{2.9-14-g6545412}{Cache definitions of previous LaTeX runs to avoid computations}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%%% This is just a proof of concept package,
|
||||||
|
%%%% there is possibly more room for clean-up
|
||||||
|
%%%% and / or speed-up etc.
|
||||||
|
|
||||||
|
%%% Also, the provided
|
||||||
|
%%% \DeclareCachedDocumentCommand
|
||||||
|
%%% is of course not really
|
||||||
|
%%% useful and just for demonstration
|
||||||
|
%%% purposes
|
||||||
|
|
||||||
|
\bool_new:N \g__cache_cache_bool
|
||||||
|
\int_new:N \g__cache_cache_version_document_int
|
||||||
|
\int_new:N \g__cache_cache_version_aux_int
|
||||||
|
\int_gset:Nn \g__cache_cache_version_aux_int { -1 }
|
||||||
|
|
||||||
|
\clist_new:N \g__cache_dump_auxfile_clist %% usual dump
|
||||||
|
\clist_new:N \g__cache_dump_cache_clist %% will be dumped such that it is restored as \g__cache_lazy_auxfile_tl on next run.
|
||||||
|
\tl_new:N \g__cache_lazy_document_tl
|
||||||
|
\tl_new:N \g__cache_lazy_auxfile_tl
|
||||||
|
|
||||||
|
\keys_define:nn { cache }
|
||||||
|
{
|
||||||
|
cache .bool_set:N = \g__cache_cache_bool,
|
||||||
|
cache .default:n = { true },
|
||||||
|
__cache version__ .int_set:N = \g__cache_cache_version_document_int,
|
||||||
|
cache version .meta:nn = { cache } { cache = true, __cache version__ = #1 },
|
||||||
|
cache version .default:n = { 0 },
|
||||||
|
}
|
||||||
|
\RequirePackage{l3keys2e}
|
||||||
|
\ProcessKeysOptions{cache}
|
||||||
|
|
||||||
|
|
||||||
|
% Setting up lazy execution and
|
||||||
|
% selecting of executing after reading of aux file
|
||||||
|
% if cache option has been used
|
||||||
|
\bool_if:NTF \g__cache_cache_bool
|
||||||
|
{
|
||||||
|
%% Writing things (at one go) to aux file at end of document:
|
||||||
|
\cs_new:Npn \__cache_dump_auxfile:n
|
||||||
|
{
|
||||||
|
\clist_gput_right:Nn \g__cache_dump_auxfile_clist
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__cache_dump_auxfile:n { x }
|
||||||
|
|
||||||
|
\cs_new:Npn \__cache_dump_cache:n
|
||||||
|
{
|
||||||
|
\clist_gput_right:Nn \g__cache_dump_cache_clist
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__cache_dump_cache:n { V }
|
||||||
|
|
||||||
|
|
||||||
|
\cs_new:Npn \__cache_write_auxout:n
|
||||||
|
{
|
||||||
|
\iow_now:cn { @auxout }
|
||||||
|
}
|
||||||
|
\cs_generate_variant:Nn \__cache_write_auxout:n { x }
|
||||||
|
|
||||||
|
%%% Handles dumping data to aux file at end of document
|
||||||
|
\hook_gput_code:nnn { enddocument } { cache }
|
||||||
|
{
|
||||||
|
\clist_map_function:NN \g__cache_dump_auxfile_clist
|
||||||
|
\__cache_write_auxout:n
|
||||||
|
|
||||||
|
\__cache_write_auxout:n
|
||||||
|
{
|
||||||
|
\csname tl_gput_right:cn \endcsname
|
||||||
|
{
|
||||||
|
g__cache_lazy_auxfile_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\__cache_write_auxout:x { \str_use:N \c_left_brace_str }
|
||||||
|
|
||||||
|
\clist_map_function:NN \g__cache_dump_cache_clist
|
||||||
|
\__cache_write_auxout:n
|
||||||
|
|
||||||
|
\__cache_write_auxout:x { \str_use:N \c_right_brace_str }
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% Writes the current cache version into aux file
|
||||||
|
\__cache_dump_auxfile:x
|
||||||
|
{
|
||||||
|
\ExplSyntaxOn
|
||||||
|
\int_gset:Nn \exp_not:N \g__cache_cache_version_aux_int
|
||||||
|
{
|
||||||
|
\int_use:N \g__cache_cache_version_document_int
|
||||||
|
}
|
||||||
|
\ExplSyntaxOff
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% Executing something lazily at beginning of document
|
||||||
|
%%% Lazy code only gets executed if auxfile version is older than document
|
||||||
|
\cs_new:Npn \__cache_lazy:n
|
||||||
|
{
|
||||||
|
\tl_gput_right:Nn \g__cache_lazy_document_tl
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% Caching things. Handles writing and reading to aux file
|
||||||
|
%%% and makes code available in the next run of LaTeX
|
||||||
|
\cs_new:Npn \__cache_cache:n #1
|
||||||
|
{
|
||||||
|
\tl_set:Nn \l_tmpa_tl
|
||||||
|
{
|
||||||
|
{ #1 }
|
||||||
|
}
|
||||||
|
\regex_replace_all:nnN { \cP\# } { \cO\# } \l_tmpa_tl
|
||||||
|
\__cache_dump_cache:V \l_tmpa_tl
|
||||||
|
}
|
||||||
|
|
||||||
|
%%% This handles loading either the cached definitions
|
||||||
|
%%% from last run or executing the lazy definitions from the current run
|
||||||
|
%%% after loading the aux file
|
||||||
|
\hook_gput_code:nnn { begindocument } { cache }
|
||||||
|
{
|
||||||
|
\int_compare:nNnTF
|
||||||
|
\g__cache_cache_version_aux_int < \g__cache_cache_version_document_int
|
||||||
|
{
|
||||||
|
\tl_use:N \g__cache_lazy_document_tl
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\tl_use:N \g__cache_lazy_auxfile_tl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\cs_set_eq:NN \__cache_lazy:n \use:n
|
||||||
|
\cs_set_eq:NN \__cache_cache:n \use_none:n
|
||||||
|
}
|
||||||
|
|
||||||
|
\cs_new:Npn \__cached_new_document_command:nnn #1 #2 #3
|
||||||
|
{
|
||||||
|
\NewDocumentCommand{#1}{#2}{#3}
|
||||||
|
\__cache_cache:n
|
||||||
|
{
|
||||||
|
\csname __cached_new_document_command:nnn \endcsname { #1 } { #2 } { #3 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\NewDocumentCommand{\DeclareCachedDocumentCommand}{mmm}
|
||||||
|
{
|
||||||
|
\__cache_lazy:n
|
||||||
|
{
|
||||||
|
\__cached_new_document_command:nnn{#1}{#2}{#3}
|
||||||
|
}
|
||||||
|
}
|
85
wip/code/mkessler-code.sty
Normal file
85
wip/code/mkessler-code.sty
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'code.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-code}[2022/06/12 - Hacky code setup for verbatim code]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\newif\ifmkessler@code@pipe\mkessler@code@pipefalse
|
||||||
|
\DeclareOption{pipe}{\mkessler@code@pipetrue}
|
||||||
|
\ProcessOptions
|
||||||
|
|
||||||
|
|
||||||
|
% This is needed in general: when _ is active, we want it to expand to
|
||||||
|
% an actual _ character
|
||||||
|
\catcode`_=13
|
||||||
|
\let_\_
|
||||||
|
\catcode`_=8
|
||||||
|
|
||||||
|
\ExplSyntaxOn
|
||||||
|
\NewDocumentCommand{\code}{m}
|
||||||
|
{
|
||||||
|
\tl_set_rescan:Nnn \l_tmpa_tl
|
||||||
|
{
|
||||||
|
\char_set_catcode_active:N _
|
||||||
|
}
|
||||||
|
{ #1 }
|
||||||
|
\texttt{ \tl_use:N \l_tmpa_tl }
|
||||||
|
}
|
||||||
|
\ExplSyntaxOff
|
||||||
|
|
||||||
|
\ifmkessler@code@pipe
|
||||||
|
\catcode`|=\active
|
||||||
|
\def|#1|{
|
||||||
|
\code{#1}
|
||||||
|
}
|
||||||
|
% Do not make | active inside tables
|
||||||
|
\AddToHook{env/tabular/before}[code]{\catcode`|=12}
|
||||||
|
\AddToHook{env/tabular/after}[code]{\catcode`|=13}
|
||||||
|
\fi
|
89
wip/exsheet/mkessler-exsheet.sty
Normal file
89
wip/exsheet/mkessler-exsheet.sty
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'exsheet.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-exsheet}[2022/06/12 - Include exercise sheets into lecture notes easily.]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
\newif\ifmkessler@exsheet@english\mkessler@exsheet@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@exsheet@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@exsheet@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@exsheet@englishtrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-exsheet}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{mkessler-fancythm}
|
||||||
|
|
||||||
|
|
||||||
|
\def\mkessler@exsheet@sheet{
|
||||||
|
\ifmkessler@exsheet@english Exercise Sheet\else Übungsblatt\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcounter{mkessler@exsheet@sheet}
|
||||||
|
|
||||||
|
\declaretheorem[style=thmgreenmargin, numberwithin=mkessler@exsheet@sheet, name=\ifmkessler@exsheet@english Exercise\else Aufgabe\fi]{mkessler@exsheet@sheetexercise}
|
||||||
|
|
||||||
|
\usepackage{xkeyval}
|
||||||
|
|
||||||
|
\NewDocumentEnvironment{sheetexercise}{O{}}{
|
||||||
|
\begin{mkessler@exsheet@sheetexercise\expandafter}\if\relax\detokenize{#1}\relax\else[#1]\fi\label{exercise-\themkessler@exsheet@sheetexercise}
|
||||||
|
}{
|
||||||
|
\end{mkessler@exsheet@sheetexercise\expandafter}\relax
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand\exercisesheet{
|
||||||
|
\refstepcounter{mkessler@exsheet@sheet}
|
||||||
|
\subsection*{\themkessler@exsheet@sheet. \mkessler@exsheet@sheet}
|
||||||
|
\addcontentsline{toc}{subsection}{\themkessler@exsheet@sheet. \mkessler@exsheet@sheet}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
56
wip/figures/mkessler-figures.sty
Normal file
56
wip/figures/mkessler-figures.sty
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'figures.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-figures}[2022/06/12 - Packages related to inclusion of figures.]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{caption}
|
||||||
|
\RequirePackage{subcaption}
|
||||||
|
\RequirePackage{float}
|
67
wip/gag/mkessler-gag.sty
Normal file
67
wip/gag/mkessler-gag.sty
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'gag.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-gag}[2022/06/12 - Numbering of environments with a fractional environment number]
|
||||||
|
|
||||||
|
|
||||||
|
% For the stack exchange source, see
|
||||||
|
% https://tex.stackexchange.com/questions/598076/how-to-have-a-fractional-environment-number/598080?noredirect=1#comment1499689_598080
|
||||||
|
% However, for a reason i don't understand the posted answer does not work for me, but i had to replace theorem with definition in the definition of the gag environment (so apparently, i have to do this for each environment separately). It seems that the definitions of this document do use \thedefinition and not \thetheorem, although by default this is not the case.
|
||||||
|
|
||||||
|
\newcounter{gag}
|
||||||
|
\makeatletter
|
||||||
|
\newenvironment{gag}[1]{%
|
||||||
|
\let\savedthedefinition\thedefinition
|
||||||
|
\thm@headfont{\bfseries\boldmath}%
|
||||||
|
\stepcounter{gag}%
|
||||||
|
\renewcommand{\thedefinition}{\savedthedefinition#1}%
|
||||||
|
\renewcommand{\theHdefinition}{gag\thegag}%
|
||||||
|
\addtocounter{definition}{-1}\ignorespaces
|
||||||
|
}{\ignorespacesafterend}
|
||||||
|
\makeatother
|
73
wip/lang-input/mkessler-lang-input.sty
Normal file
73
wip/lang-input/mkessler-lang-input.sty
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'lang-input.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-lang-input}[2022/06/12 - Packages related to language input. Still work in progress, not intended for use.]
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage[\ifutf utf8\else utf8x\fi]{inputenc}
|
||||||
|
\RequirePackage[T1]{fontenc}
|
||||||
|
|
||||||
|
% Font
|
||||||
|
\RequirePackage{lmodern} % Use latin modern font
|
||||||
|
\RequirePackage{anyfontsize} % Provides \fontsize{...}{...}\selectfont
|
||||||
|
\RequirePackage{soul} % Hyphenation, crossing \ldots
|
||||||
|
\RequirePackage{microtype} % Hyphenation, character protrusion, font expansion
|
||||||
|
|
||||||
|
% Layout
|
||||||
|
\RequirePackage{parskip} % Leave blank line instead of indenting paragraphs
|
||||||
|
\RequirePackage{onehalfspacing}
|
||||||
|
\RequirePackage{changepage} % Change page layout in middle of document
|
||||||
|
|
||||||
|
\RequirePackage{tabto} % Tabulators
|
||||||
|
|
||||||
|
% Language support
|
||||||
|
\RequirePackage[\ifenglish english \else ngerman\fi]{babel}
|
||||||
|
|
||||||
|
%Referencation
|
||||||
|
\RequirePackage{lastpage} %\pageref{LastPage} for reference on the last page
|
69
wip/removed/mkessler-removed.sty
Normal file
69
wip/removed/mkessler-removed.sty
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'removed.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-removed}[2022/06/12 - (For now) removed parts of other packages. Not intended for use right now.]
|
||||||
|
|
||||||
|
% Quotations
|
||||||
|
\RequirePackage{csquotes} % quotations
|
||||||
|
|
||||||
|
%%%% Utilities
|
||||||
|
\RequirePackage{commnt} %comments
|
||||||
|
\RequirePackage{todonotes} % todo notes
|
||||||
|
\RequirePackage{blindtext} % \blindtext filling
|
||||||
|
|
||||||
|
\RequirePackage[export]{adjustbox} %
|
||||||
|
\RequirePackage{pdfpages} % Include external PDF files easily
|
||||||
|
|
||||||
|
\newcommand{\emphasize}[1]{{\color{red} #1}}
|
||||||
|
|
||||||
|
\RequirePackage{wrapfig} % Wrap text around figures
|
||||||
|
|
||||||
|
|
||||||
|
% Math-related
|
||||||
|
\RequirePackage[export]{adjustbox}
|
90
wip/restate/mkessler-restate.sty
Normal file
90
wip/restate/mkessler-restate.sty
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'restate.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-restate}[2022/06/12 - Replacement package]
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
\RequirePackage{todonotes}
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
\RequirePackage{etoolbox}
|
||||||
|
|
||||||
|
\newif\ifmkessler@restate@english\mkessler@restate@englishtrue
|
||||||
|
\DeclareOptionX{english}{\mkessler@restate@englishtrue}
|
||||||
|
\DeclareOptionX{german}{\mkessler@restate@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@restate@englishfalse}
|
||||||
|
|
||||||
|
\define@boolkey+{mkessler-restate.sty}[mkessler@restate@]{strict}[true]{
|
||||||
|
\ifmkessler@restate@strict
|
||||||
|
\PackageInfo{mkessler-restate}{Strict mode enabled. Undefined restates will throw errors.}%
|
||||||
|
\else
|
||||||
|
\PackageInfo{mkessler-restate}{Strict mode disabled. Undefined restates will now print placeholder boxes}%
|
||||||
|
\fi
|
||||||
|
}{
|
||||||
|
\PackageWarning{mkessler-restate}{Erroneous input to key 'strict' ignored. Provide =true or =false.}
|
||||||
|
}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-restate}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
\newcommand\restatesetup[1]{\setkeys{mkessler-restate.sty}{#1}}
|
||||||
|
|
||||||
|
|
||||||
|
\NewDocumentCommand{\restatetheorem}{s m}{
|
||||||
|
\ifcsdef{#2}{
|
||||||
|
\ifx#1\BooleanTrue\csname#2\endcsname*\else\csname#2\endcsname\fi
|
||||||
|
}{
|
||||||
|
\ifmkessler@restate@strict
|
||||||
|
\PackageError{mkessler-restate}{Strict mode enabled but restate command not defined}{The theorem you tried to restate is not defined. Either make sure it is so that it can be printed or disable the strict mode with \noexpand\restatesetup{strict=false} to print a placeholder instead}
|
||||||
|
\else
|
||||||
|
\missingfigure{\ifmkessler@restate@english Here theorem \textbf{#2} is missing, since it is not part of this document.\else Hier fehlt die Wiederholung von Satz \textbf{#2}, der nicht Teil dieses Dokumentes ist.\fi}
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
}
|
102
wip/subproof/mkessler-subproof.sty
Normal file
102
wip/subproof/mkessler-subproof.sty
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'subproof.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-subproof}[2022/06/12 - Subproof environment with black square at end of proof.]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{amssymb}
|
||||||
|
\RequirePackage{amsthm}
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
\RequirePackage{refcount}
|
||||||
|
\RequirePackage{translator}
|
||||||
|
|
||||||
|
\usedictionary{translator-proof-dictionary}
|
||||||
|
|
||||||
|
\DeclareRobustCommand{\blackqed}{%
|
||||||
|
\ifmmode \mathqed
|
||||||
|
\else
|
||||||
|
\leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill
|
||||||
|
\quad\hbox{$\blacksquare$}%
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand\rawsubproof[1]
|
||||||
|
{
|
||||||
|
\pushQED
|
||||||
|
{
|
||||||
|
\blackqed
|
||||||
|
}%
|
||||||
|
\normalfont \topsep6\p@\@plus6\p@\relax
|
||||||
|
\trivlist
|
||||||
|
\item[\hskip\labelsep
|
||||||
|
\itshape
|
||||||
|
#1\@addpunct{.}]\ignorespaces
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand\rawendsubproof
|
||||||
|
{
|
||||||
|
\popQED\endtrivlist\@endpefalse
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%%subproof environment - essentially copied proof environment from amsthm and modified its name + symbol
|
||||||
|
\DeclareDocumentEnvironment{subproof}{ o }
|
||||||
|
{
|
||||||
|
\IfValueTF{#1}
|
||||||
|
{
|
||||||
|
\rawsubproof{#1}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\rawsubproof{\translate{Subproof}}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
\rawendsubproof
|
||||||
|
}
|
96
wrappers/enumerate/mkessler-enumerate.sty
Normal file
96
wrappers/enumerate/mkessler-enumerate.sty
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'enumerate.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-enumerate}[2022/06/12 - Simple enumeration package wrapper. Handles custom number setting and beamer class.]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\@ifclassloaded{beamer}{}{
|
||||||
|
\RequirePackage[shortlabels]{enumitem}
|
||||||
|
\RequirePackage{tikz}
|
||||||
|
\newcommand\setItemnumber[1]{\setcounter{enum\romannumeral\@enumdepth}{\numexpr#1-1\relax}}
|
||||||
|
\NewDocumentCommand{\SetItemNumber}{m}
|
||||||
|
{
|
||||||
|
\setcounter{enum\romannumeral\@enumdepth}{\numexpr#1-1\relax}
|
||||||
|
}
|
||||||
|
|
||||||
|
\def\mkessler@enumerate@drawcircle#1{
|
||||||
|
\tikz[baseline=(char.base)]{
|
||||||
|
\node[shape=circle,draw,inner sep=2pt] (char) {#1};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\def\mkessler@enumerate@circled{
|
||||||
|
\protect\mkessler@enumerate@drawcircle{\arabic*}
|
||||||
|
}
|
||||||
|
\def\mkessler@enumerate@property{
|
||||||
|
(\roman*)
|
||||||
|
}
|
||||||
|
\def\mkessler@enumerate@equivalent{
|
||||||
|
(\arabic*)
|
||||||
|
}
|
||||||
|
\def\mkessler@enumerate@holds{
|
||||||
|
\arabic*)
|
||||||
|
}
|
||||||
|
|
||||||
|
\SetEnumerateShortLabel{c}{\mkessler@enumerate@circled}
|
||||||
|
\SetEnumerateShortLabel{p}{\mkessler@enumerate@property}
|
||||||
|
\SetEnumerateShortLabel{e}{\mkessler@enumerate@equivalent}
|
||||||
|
\SetEnumerateShortLabel{h}{\mkessler@enumerate@holds}
|
||||||
|
|
||||||
|
\SetEnumitemValue{label}{circled}{\mkessler@enumerate@circled}
|
||||||
|
\SetEnumitemValue{label}{property}{\mkessler@enumerate@property}
|
||||||
|
\SetEnumitemValue{label}{equivalent}{\mkessler@enumerate@equivalent}
|
||||||
|
\SetEnumitemValue{label}{holds}{\mkessler@enumerate@holds}
|
||||||
|
|
||||||
|
\SetEnumitemKey{property}{label=property}
|
||||||
|
\SetEnumitemKey{equivalent}{label=equivalent}
|
||||||
|
\SetEnumitemKey{holds}{label=holds}
|
||||||
|
\SetEnumitemKey{circled}{label=circled}
|
||||||
|
}
|
77
wrappers/hypersetup/mkessler-hypersetup.sty
Normal file
77
wrappers/hypersetup/mkessler-hypersetup.sty
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'hypersetup.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-hypersetup}[2022/06/12 - Package for setting up hyperref, cleveref and some default hyperref colors]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@hypersetup@cleveref\mkessler@hypersetup@clevereffalse
|
||||||
|
\DeclareOptionX{cleveref}{\mkessler@hypersetup@clevereftrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-hypersetup}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%%%Hyperref and setup
|
||||||
|
\RequirePackage{xcolor} % To compute the colors below
|
||||||
|
\RequirePackage{etoolbox} % Checking for defined commands
|
||||||
|
|
||||||
|
\def\mkessler@hypersetup@exec{
|
||||||
|
\RequirePackage{hyperref} % Hyperlinks
|
||||||
|
\ifmkessler@hypersetup@cleveref
|
||||||
|
\RequirePackage{cleveref} % Better referencing
|
||||||
|
\fi
|
||||||
|
\hypersetup{colorlinks, citecolor=violet, urlcolor=blue!80!black, linkcolor=red!50!black, pdfauthor=\@author, pdftitle=\ifdef{\@course}{\@course}{\@title}}
|
||||||
|
}
|
||||||
|
|
||||||
|
\AtEndPreamble{
|
||||||
|
\mkessler@hypersetup@exec
|
||||||
|
}
|
97
wrappers/incfig/mkessler-incfig.sty
Normal file
97
wrappers/incfig/mkessler-incfig.sty
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'incfig.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-incfig}[2022/06/12 - Figure support for inkscape figures by Gilles Castell]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%%%%%%%%
|
||||||
|
% This is just a small package bundling the figure support for the inkscape figures by Gilles Castel. The setup can be originally found in the preamble
|
||||||
|
% https://github.com/gillescastel/university-setup
|
||||||
|
% and is specifically designed to work with the inkscape figures explained at
|
||||||
|
% https://castel.dev/post/lecture-notes-2/
|
||||||
|
|
||||||
|
% These are licensed under
|
||||||
|
|
||||||
|
%MIT License
|
||||||
|
|
||||||
|
%Copyright (c) 2019 Gilles Castel
|
||||||
|
|
||||||
|
%Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
%of this software and associated documentation files (the "Software"), to deal
|
||||||
|
%in the Software without restriction, including without limitation the rights
|
||||||
|
%to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
%copies of the Software, and to permit persons to whom the Software is
|
||||||
|
%furnished to do so, subject to the following conditions:
|
||||||
|
%
|
||||||
|
%The above copyright notice and this permission notice shall be included in all
|
||||||
|
%copies or substantial portions of the Software.
|
||||||
|
%
|
||||||
|
%THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
%IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
%FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
%AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
%LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
%OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
%SOFTWARE.
|
||||||
|
% This package extends the lecture command to make a summary of lectures at the beginning of a document, and has thus modified this command.
|
||||||
|
|
||||||
|
|
||||||
|
% Note that this package is NOT associated to Gilles Castel in any official way
|
||||||
|
|
||||||
|
|
||||||
|
% Figure support as explained in my blog post.
|
||||||
|
\RequirePackage{import}
|
||||||
|
\RequirePackage{xifthen}
|
||||||
|
\RequirePackage{pdfpages}
|
||||||
|
\RequirePackage{transparent}
|
||||||
|
\newcommand{\incfig}[1]{%
|
||||||
|
\def\svgwidth{\columnwidth}
|
||||||
|
\import{figures/}{#1.pdf_tex}
|
||||||
|
}
|
96
wrappers/math/mkessler-math.sty
Normal file
96
wrappers/math/mkessler-math.sty
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'math.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-math}[2022/06/12 - Main math package.]
|
||||||
|
|
||||||
|
|
||||||
|
% Collects the basic math packages used for my lecture-note write-ups
|
||||||
|
% This just imports all the packages I use for writing up mathematics
|
||||||
|
% Probably, you will just want to load them separately for more
|
||||||
|
% customization
|
||||||
|
|
||||||
|
\RequirePackage{xkeyval}
|
||||||
|
|
||||||
|
\newif\ifmkessler@math@english\mkessler@math@englishtrue
|
||||||
|
\DeclareOptionX{german}{\mkessler@math@englishfalse}
|
||||||
|
\DeclareOptionX{ngerman}{\mkessler@math@englishfalse}
|
||||||
|
\DeclareOptionX{english}{\mkessler@math@englishtrue}
|
||||||
|
|
||||||
|
\DeclareOptionX*{\PackageWarning{mkessler-math}{Unknown '\CurrentOption'}}
|
||||||
|
\ProcessOptionsX*\relax
|
||||||
|
|
||||||
|
|
||||||
|
%%%% Import the other custom math packages
|
||||||
|
\RequirePackage{mkessler-mathfont} % Load this first to ensure untouched fonts
|
||||||
|
|
||||||
|
\RequirePackage{amsmath}
|
||||||
|
\RequirePackage{mathtools}
|
||||||
|
\RequirePackage{amsthm}
|
||||||
|
\RequirePackage{amssymb}
|
||||||
|
|
||||||
|
\RequirePackage{latexsym}
|
||||||
|
|
||||||
|
% Für Formeln
|
||||||
|
\RequirePackage{mathabx}
|
||||||
|
\RequirePackage{esint}
|
||||||
|
|
||||||
|
\RequirePackage{IEEEtrantools}
|
||||||
|
\RequirePackage[ngerman,ruled,vlined]{algorithm2e}
|
||||||
|
|
||||||
|
|
||||||
|
%%% Importing other custom packages
|
||||||
|
\RequirePackage{mkessler-faktor}
|
||||||
|
\RequirePackage{mkessler-mathsymb}
|
||||||
|
\RequirePackage[basic]{mkessler-mathalias}
|
||||||
|
% mkessler-mathfont has already been imported
|
||||||
|
\RequirePackage[\ifmkessler@math@english english\else german\fi]{mkessler-mathop}
|
||||||
|
\RequirePackage{mkessler-categories}
|
||||||
|
\RequirePackage{mkessler-mathfig}
|
||||||
|
\RequirePackage{mkessler-unicodechar}
|
||||||
|
\RequirePackage{mkessler-mathfixes} % Load this last since it renews behaviour
|
77
wrappers/todo/mkessler-todo.sty
Normal file
77
wrappers/todo/mkessler-todo.sty
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'todo.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-27-g2d16a2d (commit 2d16a2d)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-todo}[2022/06/27 - Easy standards for the todonotes package]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\RequirePackage[colorinlistoftodos]{todonotes}
|
||||||
|
\RequirePackage{xparse}
|
||||||
|
|
||||||
|
% Make \todo{} available inside minipages
|
||||||
|
\usepackage{marginnote}
|
||||||
|
\let\marginpar\marginnote
|
||||||
|
|
||||||
|
\setuptodonotes{tickmarkheight=0.1cm, size=\small}
|
||||||
|
|
||||||
|
\NewDocumentCommand\todoref{O{}}{
|
||||||
|
\todo[color=red!40, #1]{Add reference.}
|
||||||
|
}
|
||||||
|
|
||||||
|
\NewDocumentCommand\todoquestion{O{}}{
|
||||||
|
\todo[color=black!10, size=\tiny, #1]
|
||||||
|
}
|
||||||
|
|
||||||
|
\NewDocumentCommand\todotex{O{}}{
|
||||||
|
\todo[color=green!75!black, #1]
|
||||||
|
}
|
||||||
|
|
||||||
|
\NewDocumentCommand\todotypo{O{}}{
|
||||||
|
\todo[color=blue!40, size=\tiny, #1]{Typo corrected, double check this.}
|
||||||
|
}
|
81
wrappers/unicodechar/mkessler-unicodechar.sty
Normal file
81
wrappers/unicodechar/mkessler-unicodechar.sty
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
% Copyright © 2022 Maximilian Keßler
|
||||||
|
%
|
||||||
|
% This work may be distributed and/or modified
|
||||||
|
%
|
||||||
|
% 1. under the LaTeX Project Public License and/or
|
||||||
|
% 2. under the GNU General Public License
|
||||||
|
%
|
||||||
|
% Distribution under conditions of the LaTeX Project Public License,
|
||||||
|
% requires 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 Maximilian Keßler.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Distribution under the GNU General Public License requires either
|
||||||
|
% version 3 or (at your opinion) any later version.
|
||||||
|
%
|
||||||
|
% This package has been generated by PyTeX, available at
|
||||||
|
% https://github.com/kesslermaximilian/PyTeX
|
||||||
|
% and built from source file 'unicodechar.pysty'.
|
||||||
|
% It is STRONGLY DISCOURAGED to edit this source file directly, since local
|
||||||
|
% changes will not be versioned by Git and overwritten by the next build. Always
|
||||||
|
% edit the source file and build the package again.
|
||||||
|
%
|
||||||
|
% Build details:
|
||||||
|
% PyTeX version: v1.2.0-31-gc9bb0e8 (commit c9bb0e8)
|
||||||
|
% Source code version: v2.9-14-g6545412 (commit 6545412)
|
||||||
|
%
|
||||||
|
% This LaTeX package is free software and is dual-licensed
|
||||||
|
% under the LPPLv1.3c and the GPLv3 licenses.
|
||||||
|
% You may use it freely for your purposes.
|
||||||
|
% The latest version of the package sources can be obtained
|
||||||
|
% via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackages
|
||||||
|
% The latest version of the built packages can be obtained via GitLab under
|
||||||
|
% https://gitlab.com/latexci/packages/LatexPackagesBuild
|
||||||
|
% For further information see the urls above.
|
||||||
|
% Reportings of bugs, suggestions and improvements are welcome, see the README
|
||||||
|
% at the Git repository for further information.
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{mkessler-unicodechar}[2022/06/12 - Wrapper for the newunicodechare package with some defined unicode symbols.]
|
||||||
|
|
||||||
|
|
||||||
|
% This is just a simple package loading the newunicodechar package and defining the common unicode symbols i regularly use for typesetting mathematics
|
||||||
|
|
||||||
|
\RequirePackage{newunicodechar}
|
||||||
|
|
||||||
|
\newunicodechar{α}{\ensuremath\alpha}
|
||||||
|
\newunicodechar{β}{\ensuremath\beta}
|
||||||
|
\newunicodechar{γ}{\ensuremath\gamma}
|
||||||
|
\newunicodechar{δ}{\ensuremath\delta}
|
||||||
|
\newunicodechar{ε}{\ensuremath\epsilon}
|
||||||
|
\newunicodechar{ζ}{\ensuremath\zeta}
|
||||||
|
\newunicodechar{η}{\ensuremath\eta}
|
||||||
|
\newunicodechar{θ}{\ensuremath\theta}
|
||||||
|
\newunicodechar{ι}{\ensuremath\iota}
|
||||||
|
\newunicodechar{κ}{\ensuremath\kappa}
|
||||||
|
\newunicodechar{λ}{\ensuremath\lambda}
|
||||||
|
\newunicodechar{μ}{\ensuremath\mu}
|
||||||
|
\newunicodechar{ν}{\ensuremath\nu}
|
||||||
|
\newunicodechar{ξ}{\ensuremath\xi}
|
||||||
|
\newcommand\omicron{o}\newunicodechar{ο}{\ensuremath\omicron} % For semantical use
|
||||||
|
\newunicodechar{π}{\ensuremath\pi}
|
||||||
|
\newunicodechar{ρ}{\ensuremath\rho}
|
||||||
|
\newunicodechar{σ}{\ensuremath\sigma}
|
||||||
|
\newunicodechar{τ}{\ensuremath\tau}
|
||||||
|
\newunicodechar{υ}{\ensuremath\upsilon}
|
||||||
|
\newunicodechar{φ}{\ensuremath\phi}
|
||||||
|
\newunicodechar{χ}{\ensuremath\chi}
|
||||||
|
\newunicodechar{ψ}{\ensuremath\psi}
|
||||||
|
\newunicodechar{ω}{\ensuremath\omega}
|
||||||
|
|
Loading…
Reference in a new issue