TCT-Law/kluwer.cls

232 lines
6.1 KiB
OpenEdge ABL
Raw Normal View History

Many changes and return of old laws. General updates: - Templates now use AlphAlph, to allow numbering above 26 letters - Moved seals in proposals to be pdf, based on svg, instead of png - Updated signatures in proposals, dependent on the type of document - Added kluwer class, printing dense and on a5 paper. Compatible with other classes. Updates to laws: - Migrated all old laws to new classes; added DRAFT, OUTDATED, RETRACTED or PROPOSAL watermarks where applicable - Created Royal Decree on the designation of a donation information channel, assigning the Discord channel and message for donations. - Created Titles Act (Administrative Decree), designating the relative rankings of titles and which shall go first. Also assigns colors and display Changes to the Statutes: - Implemented Amendment 2 - Removed designation of 'Holidays' chapter in title I, merged into 'Overarching Provisions' - Added fourth season to predefined seasons - Added general title provisions and amended specific title provisions - Created general provisions on decision making in title III - Owner is President while none are appointed - Created chapter for regional and functional councils in title V - Re-ordered chapters and sections in title VI - Updated land claims in title VII to be based on the Lands plugin instead of GriefPrevention - Renamed 'build code' to 'construction standards' - Hidden title 7A, since it's no longer active - Updated title 7B to reflect the legal situation regarding transfered public builds in season 4 - Added general provisions on exclusion of guilt to title X - Added the crimes of illegal title usage and obstruction to title X
2022-02-05 19:06:07 +01:00
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{kluwer}[CraftLaw for the CraftFuze Legal Project, Kluwer Layout]
\LoadClass[a5paper,4pt,twoside]{article}
\RequirePackage[left=1cm, right=1cm, top=2cm]{geometry}
\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
\RequirePackage{blindtext}
\RequirePackage{titling}
\RequirePackage{fancyhdr}
\RequirePackage{tikz}
\RequirePackage[shortlabels]{enumitem}
\RequirePackage{needspace}
\RequirePackage[document]{ragged2e}
\RequirePackage{scrextend}
% AlphAlph
\usepackage{enumitem,alphalph}
\makeatletter
\newcommand{\AlphAlphFmt}[1]{\@alphfmt{#1}} % Define the \alphalph wrapper for enumitem
\newcommand{\@alphfmt}[1]{\alphalph{\value{#1}}} % Internal representation
\AddEnumerateCounter{\alphalphFmt}{\@alphfmt}{aaa} % Register this new format
% Indent
\setlength{\parindent}{0pt}
\setlength{\parskip}{0pt}
\setlist[enumerate,1]{leftmargin=1.5em,topsep=-1ex,itemsep=-1ex,partopsep=1ex,parsep=1ex,style=sameline}
\setlist[enumerate,2]{leftmargin=1.5em,topsep=-1ex,itemsep=-1ex,partopsep=1ex,parsep=1ex,style=sameline}
\setenumerate[0]{label=- \arabic*.}
% Header and footer
\pagestyle{fancy}
\fancyhf{}
% New title layout
\newcommand{\settitle}[1]{\def\@lawtitle{#1}}
\newcommand{\setdate}[1]{\def\@date{#1}}
% Introduction
\newcommand{\introduction}[1]{%
\bigskip%
\vbox{%
\noindent{#1}%
}%
}
% About proposal content
\newcounter{TopArticle}
\newcommand{\toparticle}[2]{%
\stepcounter{TopArticle}%
\needspace{5\baselineskip}%
\bigskip%
\hbox{%
\textbf{Art. \Roman{TopArticle} #1}\newline%
}%
\begin{addmargin}[1em]{2em}
\par{#2}
\end{addmargin}
}
\newcommand{\signature}[3]{}
\newcommand{\oldsignature}[1]{}
% About legal content
\newcounter{TitleCounter}
\newcounter{TitleSubCounter}[TitleCounter]
\newcounter{ChapterCounter}[TitleCounter]
\newcounter{ChapterSubCounter}[ChapterCounter]
\newcounter{SectionCounter}[ChapterCounter]
\newcounter{SectionSubCounter}[SectionCounter]
\newcounter{ParagraphCounter}[SectionCounter]
\newcounter{SubParagraphCounter}[ParagraphCounter]
\newcounter{ArticleCounter}[TitleSubCounter]
\newcounter{ArticleSubCounter}[ArticleCounter]
\renewcommand{\title}[1]{%
\needspace{20\baselineskip}%
\bigskip%
\titlecounter%
\vbox{%
\noindent{TITLE \Roman{TitleCounter}\newline\textbf{#1}}
}%
}
\newcommand{\subtitle}[1]{%
\needspace{20\baselineskip}%
\bigskip%
\subtitlecounter%
\vbox{%
\noindent{TITLE \Roman{TitleCounter} \AlphAlph{\value{TitleSubCounter}}\newline\textbf{#1}}
}%
}
\newcommand{\chapter}[1]{
\needspace{20\baselineskip}%
\bigskip%
\stepcounter{ChapterCounter}%
\vbox{%
\noindent{CHAPTER \Roman{ChapterCounter}\newline\textbf{#1}}
}%
}
\newcommand{\subchapter}[1]{
\needspace{20\baselineskip}%
\bigskip%
\stepcounter{ChapterSubCounter}%
\vbox{%
\noindent{CHAPTER \Roman{ChapterCounter} \AlphAlph{\value{ChapterSubCounter}}\newline\textbf{#1}}
}%
}
\renewcommand{\section}[1]{%
\needspace{10\baselineskip}%
\bigskip%
\stepcounter{SectionCounter}%
\vbox{%
\noindent{SECTION \Roman{SectionCounter}\newline\textbf{#1}}
}%
}
\renewcommand{\subsection}[1]{%
\needspace{10\baselineskip}%
\bigskip%
\stepcounter{SectionSubCounter}%
\vbox{%
\noindent{SECTION \Roman{SectionCounter} \AlphAlph{\value{SectionSubCounter}}\newline\textbf{#1}}
}%
}
\renewcommand{\paragraph}[1]{%
\needspace{10\baselineskip}%
\bigskip%
\stepcounter{ParagraphCounter}%
\vbox{%
\noindent{§ \arabic{ParagraphCounter}.\arabic{SubParagraphCounter}\newline \textbf{#1}}
}%
}
\renewcommand{\subparagraph}[1]{%
\needspace{10\baselineskip}%
\bigskip%
\stepcounter{SubParagraphCounter}%
\vbox{%
\noindent{§ \arabic{ParagraphCounter}.\arabic{SubParagraphCounter}\newline \textbf{#1}}
}%
}
\newcommand{\article}[2]{%
\needspace{5\baselineskip}%
\bigskip%
\articlecounter%
\hbox{%
\ifnum\value{TitleCounter}>0%
\ifnum\value{TitleSubCounter}>0%
\textbf{Art. \arabic{TitleCounter}\AlphAlph{\value{TitleSubCounter}}:\arabic{ArticleCounter} #1}\newline%
\else%
\textbf{Art. \arabic{TitleCounter}:\arabic{ArticleCounter} #1}\newline%
\fi%
\else%
\textbf{Art. \arabic{ArticleCounter} #1}\newline%
\fi%
}%
\justify%
\par{#2}%
}
\newcommand{\subarticle}[2]{%
\needspace{5\baselineskip}%
\bigskip%
\subarticlecounter%
\hbox{%
\ifnum\value{TitleCounter}>0%
\ifnum\value{TitleSubCounter}>0%
\textbf{Art. \arabic{TitleCounter}\AlphAlph{\value{TitleSubCounter}}:\arabic{ArticleCounter}\alphalph{\value{ArticleSubCounter}} #1}\newline%
\else%
\textbf{Art. \arabic{TitleCounter}:\arabic{ArticleCounter}\alphalph{\value{ArticleSubCounter}} #1}\newline%
\fi%
\else%
\textbf{Art. \arabic{ArticleCounter}\alphalph{\value{ArticleSubCounter}} #1}\newline%
\fi%
}%
\justify%
\par{#2}%
}
% Header tracker
\newmarks\articlemark
\newmarks\subarticlemark
\newmarks\titlemark
\newmarks\subtitlemark
\newcommand{\articlecounter}{%
\stepcounter{ArticleCounter}%
\marks\articlemark{\arabic{ArticleCounter}}%
\marks\subarticlemark{}%
\marks\titlemark{\arabic{TitleCounter}}%
\marks\subtitlemark{\Alph{TitleSubCounter}}%
}
\newcommand{\subarticlecounter}{%
\stepcounter{ArticleSubCounter}%
\marks\subarticlemark{\alph{ArticleSubCounter}}%
\marks\articlemark{\arabic{ArticleCounter}}
\marks\titlemark{\arabic{TitleCounter}}%
\marks\subtitlemark{\Alph{TitleSubCounter}}%
}%
\newcommand{\titlecounter}{%
\stepcounter{TitleCounter}%
\marks\titlemark{\arabic{TitleCounter}}%
\marks\subtitlemark{\Alph{TitleSubCounter}}%
}
\newcommand{\subtitlecounter}{%
\stepcounter{TitleSubCounter}%
\marks\subtitlemark{\Alph{TitleSubCounter}}%
}%
\newcommand{\articlehead}{
\begingroup
\edef\firstarticle{\firstmarks\articlemark}
\edef\firstsubarticle{\firstmarks\subarticlemark}
\edef\firsttitle{\firstmarks\titlemark}
\edef\firstsubtitle{\firstmarks\subtitlemark}
Art. \firsttitle\firstsubtitle:\firstarticle\firstsubarticle
\endgroup
}
% And generate the header using these markers
\newcommand{\generateHeader}{
% Header
\fancyhead[LE,RO]{\@lawtitle}
\fancyhead[RE,LO]{\articlehead}
\fancyfoot[RE,LO]{\thepage}
% Title
\noindent%
\textbf{\large\fontfamily{phv}\fontseries{b}%
\selectfont \@lawtitle}%
\medskip%
}