232 lines
6.1 KiB
OpenEdge ABL
232 lines
6.1 KiB
OpenEdge ABL
|
\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%
|
||
|
}
|