TCT-Law/kluwer.cls

232 lines
6.1 KiB
TeX

\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{ARTICLE \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{35\baselineskip}%
\bigskip%
\titlecounter%
\vbox{%
\noindent{TITLE \Roman{TitleCounter}\newline\textbf{#1}}
}%
}
\newcommand{\subtitle}[1]{%
\needspace{35\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%
}