# The LaTeX package `contract` Copyright © 2007–2026 Markus Kohm Release: 2026-04-23 v0.92 License: LPPL 1.3c KOMA presents the KOMA-Script spin-off `contract`. Package `contract` provides environments for legal contracts, sections, paragraphs and similar. It is the official successor to the former KOMA-Script package `scrjura`. ------------------------------------------------------------------------------ The project is currently hosted and managed on [Codeberg](https://codeberg.org/komascript/latex-contract). For safety reasons, the repository will continue to be mirrored on [GitHub](https://github.com/komascript/latex-contract) for some time. However, error reports and push requests will only be acknowledged on [Codeberg](https://codeberg.org/komascript/latex-contract). ------------------------------------------------------------------------------ This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, version 1.3c of the license. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later. The Current Maintainer and author of this work is Markus Kohm. This work consists of the files listed in MANIFEST.md. ------------------------------------------------------------------------------ # Abstract For several years [KOMA-Script](https://www.sourceforge.net/project/koma-script) provides package `scrjura`. The package was developed at the request of and in co-operation with a German lawyer. In 2024, the package was separated from KOMA-Script and has since been called `contract`. The new name was chosen to avoid confusion with KOMA-Script packages. Secondly, it better reflects the purpose of the package. # Contributors/Collaborators - *Markus Kohm aka KOMA aka [komascript](https://codeberg.org/komascript)*: Maintainer, Developer, “go-to guy” - *[Keks-Dose](https://github.com/Keks-Dose)*: Tester, “idea man” # Installation for Users If you are a user, you should usually wait until the package has been added to your preferred TeX distribution. Then you can use the package manager of your TeX distribution to install the package. # Unpacking for Distributors Distributors should [download the current release](https://codeberg.org/komascript/latex-contract/releases). See [`MANIFEST.md`](https://codeberg.org/komascript/latex-contract/src/branch/main/MANIFEST.md) for information about the files, that build the distribution. If distributors also want to distribute `contract.sty`, they can unpack it using: tex contract.dtx or temporary install `contract` into a TEXMF tree using: l3build install --full --texmfhome and then use the files from the selected ``. # Unpacking and Installation for Developers Developers who want the current developer version of the code to be installed for testing, should clone [the `latex-contract` repository](https://codeberg.org/komascript/latex-contract.git), e.g., using git clone https://codeberg.org/komascript/latex-contract.git You can than unpack and install `contract` using: l3build install from within the main directory of the cloned respository. **Important Note:** The user manual of `contract` uses some packages, which are still under development and therefore currently may not be available on CTAN. So you usually cannot use `l3build doc` to generate the documentation or `l3build install --full` to install `contract` with the documentation. Instead you either have to read `contract.dtx` or use the `contract.pdf` available at the newest [`contract` release](https://codeberg.org/komascript/latex-contract/releases) or [the `release` branch](https://codeberg.org/komascript/latex-contract/src/branch/release). You can copy such PDFs to the `doc/latex/contract/` folder of any TEXMF tree. # How to get the Manual After installation of `contract` and the user manual you can use: texdoc contract Without installation you can get `contract.pdf` as part of the corresponding [`contract` release](https://codeberg.org/komascript/latex-contract/releases) or [the `release` branch](https://codeberg.org/komascript/latex-contract/src/branch/release). # How to Contribute To become a contributor, e.g., do heavy testing. If you find an issue, please [report it](#how-to-report-issues). You can also become a developer and, e.g., make new test files to the package. See the [`l3build`](https://ctan.org/pkg/l3build) manual for more information about tests. If you've created a new test and think that it would be useful, please either do a [pull request](https://codeberg.org/komascript/latex-contract/pulls) or [add a new issue](#how-to-report-issues) and include your test file. # How to Report Issues If you think you have found a bug (or another kind of issue) using `contract` you should use [the issue tracker](https://codeberg.org/komascript/latex-contract/issues). Please first search for similar issues already reported and maybe also already fixed and closed. Maybe the replies to such a similar report would help you too. If your issue is new, you should report it also using [the issue tracker](https://codeberg.org/komascript/latex-contract/issues). Please be kind, not only when writing the report but also when reading replies and commenting or answering. And please always add a minimal working example and usually the relevant parts of the `log`-file to your report. Please use the [markdown for code](https://docs.codeberg.org/markdown/preformatted-text/) to add such files into the text of your report. The correct language identifier for LaTeX code would be `latex`. For `log`-files you won't need any language identifier. Usually you should not use attachments for code or `log`-files unless you've been asked to do so. And please note, reports should always be self-containing. External links often break and so the report become useles. # How to Say Thank You for my Work Hey, I'm doing this as a hobby. So no need to say thank you. But I'm a vain fop, so I'm certainly up for a quick thank you by email. If you want to give more have a look to my [wishlist](https://koma-script.sourceforge.io/wunschliste). It is also available [in German](https://koma-script.sourceforge.io/de/koma/wishlist/). # Milestones The development has just begun. Currently the first milestone: - [x] creating a new repository - [x] copying `scrjura.dtx` from KOMA-Script as `contract.dtx` to the new repository - [x] creating a new build environment: - [x] `README.md` - [x] `LICENSE.md` - [x] `MANIFEST.md` - [x] `build.lua` - [x] test files - [x] renaming several internals of `contract` - [x] adding user documentation based on the `scrjura` chapters of the English KOMA-Script manual - [x] improving user documentation has been reached. Further milestones could be: - [x] replacing `scrjura` by a `contract` wrapper in KOMA-Script for compatibility only - [ ] reimplementing several internals of `contract`: - [ ] replacing KOMA-Script options by LaTeX key-value options - [ ] replacing \newkomafont, \setkomafont by something not KOMA-Script related or alterntively replacing the the internally used `scrkbase` by `scrextend`, - [ ] using `expl3`, - [ ] using the new paragraph hooks of LaTeX, - [ ] using the extended referencing mechanism of LaTeX. # From `scrjura` to `contract` If you have been using the `scrjura` package and are now switching to the `contract` package, you should read chapter “From `scrjura` to `contract`” in the `contract` user manual. The most important and incompatible change IMHO is, that the argument of `\Clause` and `\SubClause` isn't mandaroty any longer but optional. So the syntax has changed to `\Clause[]` resp. `\SubClause[]`. **Note:** For a transitional period, KOMA-Script will continue to contain a package `scrjura`, which is a wrapper to `contract` and attempts to increase compatibility. With this package, the argument of `\Clause` and `\SubClause` will remain mandatory for the time being. However, this package is expected to disappear from KOMA-Script after a reasonable period of smooth transition.