An open API service indexing awesome lists of open source software.

https://github.com/komascript/latex-contract

NOTE: This project has been migrated to Codeberg, but for some time the repository is still mirrored.
https://github.com/komascript/latex-contract

contracts latex

Last synced: 3 months ago
JSON representation

NOTE: This project has been migrated to Codeberg, but for some time the repository is still mirrored.

Awesome Lists containing this project

README

          

# The LaTeX package `contract`

Copyright © 2007–2025 Markus Kohm

Release: 2025-11-12 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. On komascript.de you
can find an [explanation of my wishes](https://komascript.de/wunschliste) if
you want to give more. If you don't understand German, just click to links at
that page.

# 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.