GithubHelp home page GithubHelp logo

wuespace / delegis Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 0.0 408 KB

A Typst package and template for drafting legislative content in a German-style structuring, such as for bylaws, etc.

Home Page: https://typst.app/universe/package/delegis/

License: MIT License

Typst 82.39% Shell 17.61%
bylaws contract geschaeftsordnung jura law legislation legislature satzung statue template

delegis's Introduction

delegis

Page containing a logo at the top-right and a geric (example) title Page containing an outline Page containing a German-style legislative content including a preamble, division titles, sections, paragraph and sentence numbering, etc.

A package and template for drafting legislative content in a German-style structuring, such as for bylaws, etc.

While the template is designed to be used in German documents, all strings are customizable. You can have a look at the delegis.typ to see all available parameters.

General Usage

While this README.md gives you a brief overview of the package's usage, we recommend that you use the template (in the template folder) as a starting point instead.

Importing the Package

#import "@preview/delegis:0.3.0": *

Initializing the template

#show: delegis.with(
  // Metadata
  title: "Vereinsordnung zu ABCDEF", // title of the law/bylaw/...
  abbreviation: "ABCDEFVO", // abbreviation of the law/bylaw/...
  resolution: "3. Beschluss des Vorstands vom 24.01.2024", // resolution number and date
  in-effect: "24.01.2024", // date when it comes into effect
  draft: false, // whether this is a draft
  // Template
  logo: image("wuespace.jpg", alt: "WüSpace e. V."), // logo of the organization, shown on the first page
)

Sections

Sections are auto-detected as long as they follow the pattern § 1 ... or § 1a ... in its own paragraph:

§ 1 Geltungsbereich

(1) 
Diese Ordnung gilt für alle Mitglieder des Vereins.

(2) 
Sie regelt die Mitgliedschaft im Verein.

§ 2 Mitgliedschaft

(1) 
Die Mitgliedschaft im Verein ist freiwillig.

(2) 
Sie kann jederzeit gekündigt werden.

§ 2a Ehrenmitgliedschaft

(1) 
Die Ehrenmitgliedschaft wird durch den Vorstand verliehen.

Alternatively (or if you want to use special characters otherwise not supported, such as *), you can also use the #section[number][title] function:

#section[§ 3][Administrator*innen]

Hierarchical Divisions

If you want to add more structure to your sections, you can use normal Typst headings. Note that only the level 6 headings are reserved for the section numbers:

= Allgemeine Bestimmungen

§ 1 ABC

§ 2 DEF

= Besondere Bestimmungen

§ 3 GHI

§ 4 JKL

Delegis will automatically use a numbering scheme for the divisions that is in line with the "Handbuch der Rechtsförmlichkeit", Rn. 379 f. If you want to customize the division titles, you can do so by setting the division-prefixes parameter in the delegis function:

#show: delegis.with(
  division-prefixes: ("Teil", "Kapitel", "Abschnitt", "Unterabschnitt")
)

Sentence Numbering

If a paragraph contains multiple sentences, you can number them by adding a #s~ at the beginning of the sentences:

§ 3 Mitgliedsbeiträge

#s~Die Mitgliedsbeiträge sind monatlich zu entrichten.
#s~Sie sind bis zum 5. des Folgemonats zu zahlen.

This automatically adds corresponding sentence numbers in superscript.

Referencing other Sections

Referencing works manually by specifying the section number. While automations would be feasible, we have found that in practice, they're not as useful as they might seem for legislative documents.

In some cases, referencing sections using § X could be mis-interpreted as a new section. To avoid this, use the non-breaking space character ~ between the § and the number:

§ 5 Inkrafttreten

Diese Ordnung tritt am 24.01.2024 in Kraft. §~4 bleibt unberührt.

Changelog

v0.3.0

Features

  • Adjust numbered list / enumeration numbering to be in line with "Handbuch der Rechtsförmlichkeit", Rn. 374
  • Make division titles (e.g., "Part", "Chapter", "Division") customizable and conform to the "Handbuch der Rechtsförmlichkeit", Rn. 379 f.

v0.2.0

Features

  • Add #metadata fields for usage with typst query. You can now use typst query file.typ "<field>" --field value --one with <field> being one of the following to query metadata fields in the command line:
    • <title>
    • <abbreviation>
    • <resolution>
    • <in-effect>
  • Add #section[§ 1][ABC] function to enable previously unsupported special chars (such as *) in section headings. Note that this was previously possible using #unnumbered[§ 1\ ABC], but the new function adds a semantically better-fitting alternative to this fix.
  • Improve heading style rules. This also fixes an incompatibility with pandoc, meaning it's now possible to use pandoc to convert delegis documents to HTML, etc.
  • Set the footnote numbering to [1] to not collide with sentence numbers.

Bug Fixes

  • Fix a typo in the str-draft variable name that lead to draft documents resulting in a syntax error.
  • Fix hyphenation issues with the abbreviation on the title page (hyphenation between the parentheses and the abbreviation itself)

v0.1.0

Initial Release

delegis's People

Contributors

pklaschka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

delegis's Issues

Align heading numbering with "Handbuch der Rechtsförmlichkeit"

The "Handbuch der Rechtsförmlichkeit" is basically the manual on this style of texts. The higher-level headings should be aligned with the specifications in this manual:

Als Artbezeichnung werden vorrangig „Teil“, „Kapitel“, „Abschnitt“, „Unterab- schnitt“, verwendet (Nummer 3 der Anlage 6 zu § 42 Absatz 2 GGO). Die außerdem vorzusehende Zählung macht die Artbezeichnung nicht überflüssig. Eine nur num- merierte, aber z. B. nicht als „Abschnitt 3“ bezeichnete Gliederungseinheit „3.“ ließe sich nicht eindeutig zitieren. (Rn. 379)

Innerhalb einer Artbezeichnung erfolgt die Zählung fortlaufend in arabischen Zif- fern. Die Zählbezeichnung steht immer nach der Artbezeichnung (z. B. „Teil 2“ und nicht „2. Teil“ oder „Zweiter Teil“; „Kapitel 1“ und nicht „Kapitel I“). (Rn. 380)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.