dsekdocs is a package for the typesetting of the D-guild's LaTeX documents. It is meant to replace the now 20 year old package dsek-latex. dsekdocs consists of a regular LaTeX package, dsek.sty, and a number of document classes shown below in a hierarchy of dependencies:
dsekdoc.clsis the root document class.dsekmotion.cls. Used for motions and propositions. (Motioner och propositioner)dseknotice.cls. Used for notices. (Kallelser)dsekdocket.cls. Used for dockets. (Föredragningslistor)dsekelectionproposal.cls. Used for election proposals. (Valberedningens förslag)dsekrequirementsprofile.cls. Used for requirements profiles. (Kravprofiler)dsekparagraphed.cls. Used for documents with enumerated paragraphs.dsekminutes.cls. Used for meeting minutes. (Protokoll)dsekregdoc.cls. Used for regulatory documents. (Styrdokument)dsekstatutes.cls. Used for statutes. (Stadgar)dsekregulations.cls. Used for regulations. (Reglemente)dsekpolicy.cls. Used for policies. (Policyer)dsekguideline.cls. Used for guidelines. (Riktlinjer)
The package dsek depends on
- xparse
- graphicx
- enumitem
The document class dsekdoc depends on
- calc
- dsek
- datetime2
- fontspec†
- geometry
- hyperref
- lastpage
- polyglossia†
- titlesec
All document classes depend on dsekdoc, but some have additional dependencies:
dseknotice depends on
- longtable
dsekelectionproposal depends on
- multicol
† - these packages are incompatible with pdflatex. This means that document classes with these dependencies cannot be compiled with pdflatex. Use xelatex or lualatex instead!
dsekdocs uses l3build for building the package documentation and the ready to publish CTAN-package.
To build the package documentation, you can run
$ l3build docsand to build the CTAN package, you can run
$ l3build ctanIf there are bugs, features missing or something else about the development you want to discuss, please create an issue. Pull requests are also welcome, but a corresponding issue is nice to have, should multiple pull requests for the same functionality arise.
dsekdocs uses Semantic Versioning. Read through it before determining what kind of version bump to create.
dsekdocs makes use of the regression testing facilities of l3build. To run the tests, run
$ l3build checkIf you change the code for any commands in the package, some tests will in all likelihood fail. As these tests only check for a change in the output, this doesn't mean that the new code is wrong, but check that it's the tests you expect that fail and no more. For more details, see the l3build documentation.
If you introduce new functionality, please also introduce new tests. When you have a .lvt file that contains tests for this functionality, the corresponding .tlg files can be created with
$ l3build save <name of test>
$ l3build save -e luatex <name of test>Documentation for the development of LaTeX packages is kind of scarce; especially so since we are using the relatively modern Expl syntax introduced in LaTeX3. Regardless, some good resources are:
- The expl3 documentation is a good base for understanding the syntax.
- The xparse documentation is good for understanding the
xparsepackage, which is featured heavily for the introduction of user-facing commands and environments. - The LaTeX3 interfaces is a reference for most things LaTeX3. It describes all the different datatypes and how to use them.
- The LaTeX Companion is a reference for all kinds of LaTeX concepts, not just LaTeX3.