\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dnLayout}[2026/09/01 Mise en page : geometrie, titres, en-tetes]

%%% Geometrie de page, en-tetes, titres de sections, \title/\author,
%%% colonnes de tableaux.  Independant des theoremes et de la langue.

\RequirePackage{dnBase}
\RequirePackage{array}
\RequirePackage{enumitem}
\RequirePackage{fancyhdr}
\RequirePackage{titlesec}
\RequirePackage{caption}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% geometrie de la page
\RequirePackage[top=100pt, bottom=75pt, left=75pt, right=75pt]{geometry}
\setlength{\headsep}{15pt}
\setlength{\footskip}{45pt}

%%% le paquet caption permet de fixer la largeur des legendes,
%%% globalement ici, ou figure par figure avec \captionsetup{width=<len>}
\captionsetup{width=.926\textwidth}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% titre et auteur
\def\beforetitle{1.25}
\renewcommand{\title}[1]{
  \vspace*{\beforetitle\baselineskip}
  \begin{center}
    \LARGE\textbf{#1}
  \end{center}\ignorespaces
  \addvspace{1.5\baselineskip}}

\renewcommand{\author}[1]{
  \addvspace{-1\baselineskip}
  \begin{center}
    \large\textsc{#1}
  \end{center}\ignorespaces
  \addvspace{2\baselineskip}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% sections et sous-sections

%%% point + espace apres le numero, pour tous les niveaux non redefinis
%%% ci-dessous (\section, \part).
\titlelabel{\thetitle.\hspace{0.5em}}

%%% seules deviations reelles par rapport aux defauts de la classe
\titleformat{\subsection}{%
  \normalfont\large\bfseries\slshape}{\thesubsection.}{0.5em}{}
\titleformat{\subsubsection}[runin]{%
  \normalfont\bfseries}{\thesubsubsection.}{.3em}{}[ -- ]
\titleformat{\paragraph}[runin]{%
  \normalfont\scshape}{}{}{}[.\phantom{a}]

%%% ce qu'on veut vraiment : l'air vertical.  Unite : l'ex.
%%% NB pour les niveaux [runin] (subsubsection, paragraph), le troisieme
%%% argument est un espace HORIZONTAL entre le titre et le texte suivant.
\titlespacing*{\section}      {0pt}{*9}{*3}
\titlespacing*{\subsection}   {0pt}{*5}{*1.5}
\titlespacing*{\subsubsection}{0pt}{*2}{*1}
\titlespacing*{\paragraph}    {0pt}{*1}{0pt}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% style de page
\newcommand{\headcol}{K}
\def\footrulewidth{0pt}
\def\headrulewidth{0pt}  %{0.3pt}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{%
  \markboth{\color{\headcol}\footnotesize{\thesection. #1}}{}
}
\lhead{}
\chead{}
\rhead{\fancyplain{}{\leftmark}}
\lfoot{\fancyplain{}{}}
\cfoot{\fancyplain{}{\small\thepage}}
\rfoot{\fancyplain{}{}}
\setlength{\headheight}{14pt}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% colonnes dans les tableaux
%%% Exemple : L{.25\linewidth}
%%% Le type N sert de derniere colonne vide quand il faut controler
%%% l'espace vertical apres un \\ (i.e. \tabularnewline).
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}}
\newcolumntype{N}{@{}m{0pt}@{}}

\renewcommand{\arraystretch}{1.35}  % espace entre les lignes (defaut 1)

%%% pour colorer des cellules : \usepackage{colortbl}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% signature graphique
\newcommand{\gsignature}[1]{%
  \raisebox{-.5ex}{%
    \begin{tikzpicture}[scale={#1}]
      \fill[preaction={fill=DarkB!60!black,
        opacity=.25, transform canvas={xshift=2.2pt, yshift=1.8pt}}]
      [fill=DarkB, even odd rule]
      (-.7,-.3) rectangle ++(.8,.8) (-.05,0) circle (.5);
    \end{tikzpicture}
  }
}
