diff --git a/cours/cours.cls b/cours/cours.cls index ecadbcd..d3482f2 100644 --- a/cours/cours.cls +++ b/cours/cours.cls @@ -13,7 +13,7 @@ %-- classe de base -\LoadClass[a4paper, 10pt]{article} +\LoadClass[a4paper, 12pt]{scrartcl} %--% @@ -22,47 +22,22 @@ % PERSONNELLES % commun: contient des définitions et extensions de base pour tout. \RequirePackage{commun} +\RequirePackage{shortcuts} % sortie -% \RequirePackage[pdftex]{graphicx} +\RequirePackage[pdftex]{graphicx} \RequirePackage{comment} % mise en page -\RequirePackage{fancyhdr} +\RequirePackage{geometry} +\RequirePackage{scrlayer-scrpage} +\RequirePackage{mdframed} +\RequirePackage{titlesec} %--% -%-- structure de la page -% marges de la page : haute et basse -\setlength{\hoffset}{-1in+0.5cm} -\setlength{\voffset}{-1in+0.5cm} -% marge du texte -\setlength{\oddsidemargin}{0cm} -\setlength{\topmargin}{0cm} -% marge notes -\setlength{\marginparwidth}{0cm} -\setlength{\marginparsep}{0cm} -% largeur et hauteur du texte -\setlength{\textwidth}{20cm} -\setlength{\textheight}{28.7cm} -% distance du cadre texte avec en-tete -\setlength{\headsep}{0.5cm} -% en-tete -\setlength{\headheight}{1cm} -\renewcommand{\headrulewidth}{0.4pt}% defaut \headrulewidth vaut 0.4pt -% pied de page -\setlength{\footskip}{0.5cm} -\renewcommand{\footrulewidth}{0pt}% defaut \footrulewidth vaut 0pt -% style de page -\pagestyle{empty} -% paragraphes : pas d'alinea -\setlength{\parindent}{0pt} -%--% - - - -%-- paramétrage de certains packages +%-- paramétrages % metapost \ifpdf \DeclareGraphicsRule{*}{mps}{*}{} @@ -70,6 +45,37 @@ % tkz \usetkzobj{all} % on charge tous les objets + +% format de la page +\geometry{a4paper, hmargin=.7cm, vmargin=.7cm} + +% titre +\pagestyle{scrheadings} +\setkomafont{title}{\Comic} + +% (sub)sections +\titleformat{\section}[block]{\sffamily\bfseries\Large}{\thesection.}{.5em}{}[] +\titleformat{\subsection}[block]{\sffamily\bfseries\large\hspace{2em}}{\thesubsection)}{.5em}{}[] +\renewcommand \thesection{\Roman{section}} +\renewcommand \thesubsection{\arabic{subsection}} + +% paths +\graphicspath{{images/}} + +% mdframed +\mdfsetup{ + frametitlealignment=\raggedright,% + innerbottommargin=2em,% +} + +\mdfdefinestyle{framed}{% + linecolor=black,linewidth=1pt,% + leftmargin=0,rightmargin=0,% + innerleftmargin=5pt,innerrightmargin=5pt,% + frametitlerule=true,% + frametitlebackgroundcolor=white!0,innertopmargin=\topskip,% + xcolor,% +} %--% @@ -78,6 +84,14 @@ \makeatletter %-- Macros personnelles +% debut +\NewDocumentCommand \debut { G{Titre} G{Sous-titre} } {% + \title{#1} + \subtitle{#2} + \date{} + \maketitle +} + % Vtextvisiblespace[largeur] \newcommand\Vtextvisiblespace[1][.3em]{% \mbox{\kern.06em\vrule height.3ex}% @@ -85,276 +99,322 @@ \hbox{\vrule height.3ex}% } -% entete{dst|dm|int}{numero}{classe}{date} -\newcommand{\entete}[4] { - % le contenu varie en fonction des arguments - \ifthenelse{ \equal{#1}{dst} } - { - \fancypagestyle{dst}{ % - \lhead{#3\\NOM :\\Pr\'enom :} - \chead{\textbf{MATHEMATIQUES}\\Devoir Sur Table n\textsuperscript{o}#2\\} - \rhead{le : #4\\~~\\}} - \thispagestyle{dst} - } - { - \ifthenelse{ \equal{#1}{dm} } - { - \fancypagestyle{dm}{ % - \lhead{#3\\NOM :\\Pr\'enom :} - \chead{\textbf{MATHEMATIQUES}\\Devoir Maison n\textsuperscript{o}#2\\} - \rhead{\`A rendre le : #4\\~~\\}} - \thispagestyle{dm} - } - { - \ifthenelse{ \equal{#1}{int} } - { - \fancypagestyle{int}{ % - \lhead{#3\\NOM :\\Pr\'enom :} - \chead{\textbf{MATHEMATIQUES}\\Interrogation n\textsuperscript{o}#2\\} - \rhead{le : #4\\~~\\}} - \thispagestyle{int} - } - { - \ifthenelse{ \equal{#1}{crs} } - { - \fancypagestyle{crs}{ % - \lhead{#4} - \chead{\textbf{#2}} - \rhead{Cours}} - \thispagestyle{crs} - } - { - \ifthenelse{ \equal{#1}{act} } - { - \fancypagestyle{act}{ % - \lhead{#4} - \chead{\textbf{#2}} - \@ifmtarg{#3}{ \rhead{Activit\'e} }{ \rhead{Activit\'e - #3} }} - \thispagestyle{act} - } - { - \ifthenelse{ \equal{#1}{exo} } - { - \fancypagestyle{exo}{ % - \lhead{#4} - \chead{\textbf{#2}} - \@ifmtarg{#3}{\rhead{Exercices}}{\rhead{Exercices - #3}}} - \thispagestyle{exo} - } - } - } - } - } - } +% \partie | \sspartie +% definie un titre pour une (sous)section +\newcounter{partiecounter} +\newcounter{sspartiecounter} + +\NewDocumentCommand \partie { G{Partie} } {% + \def\cType{\Roman} + \stepcounter{partiecounter} + \setcounter{sspartiecounter}{0} + \section{#1} +} +% +\NewDocumentCommand \sspartie { G{Sous-Partie} } {% + \def\cType{\arabic} + \stepcounter{sspartiecounter} + \subsection{#1} } +% Fix error from KOMA-Script scrartcl class. +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} -% exercice<[type]> -% -% type = 1 -> \arabic -% type = a -> \alph -% type = A -> \Alph -% type = i -> \roman -% type = I -> \Roman -% \arabic par défaut -\newcounter{exercicecounter} -\newcommand{\exercice}[1][1] { -\ifthenelse{ \equal{#1}{i} } +% environnements +% definition de divers environnements personnels : definition, theoreme, exemple, +% exercice (avec numerotation), remarque, methode. +\NewDocumentEnvironment{déf}{ s g }{%begin + \IfBooleanTF #1 { - \def\cType{\roman} - } - { - \ifthenelse{ \equal{#1}{I} } - { - \def\cType{\Roman} + \IfNoValueTF {#2} { + \begin{block} {} + }{ + \begin{block} {#2} } - { - \ifthenelse{ \equal{#1}{a} } - { - \def\cType{\alph} - } - { - \ifthenelse{ \equal{#1}{A} } - { - \def\cType{\Alph} - } - { - \def\cType{\arabic} - } - } + }{ + \IfNoValueTF {#2} { + \begin{block} {Définition} + }{ + \begin{block} {Définition - #2} } } - \stepcounter{exercicecounter} - \textbf{Exercice \cType{exercicecounter}\ } +}{%end + \end{block} } -% questions<[type]> + + +% % entete{dst|dm|int}{numero}{classe}{date} +% \newcommand{\entete}[4] { +% % le contenu varie en fonction des arguments +% \ifthenelse{ \equal{#1}{dst} } +% { +% \fancypagestyle{dst}{ % +% \lhead{#3\\NOM :\\Prénom :} +% \chead{\textbf{MATHÉMATIQUES}\\Devoir Sur Table n\textsuperscript{o}#2\\} +% \rhead{le : #4\\~~\\}} +% \thispagestyle{dst} +% } +% { +% \ifthenelse{ \equal{#1}{dm} } +% { +% \fancypagestyle{dm}{ % +% \lhead{#3\\NOM :\\Prénom :} +% \chead{\textbf{MATHÉMATIQUES}\\Devoir Maison n\textsuperscript{o}#2\\} +% \rhead{À rendre le : #4\\~~\\}} +% \thispagestyle{dm} +% } +% { +% \ifthenelse{ \equal{#1}{int} } +% { +% \fancypagestyle{int}{ % +% \lhead{#3\\NOM :\\Prénom :} +% \chead{\textbf{MATHÉMATIQUES}\\Interrogation n\textsuperscript{o}#2\\} +% \rhead{le : #4\\~~\\}} +% \thispagestyle{int} +% } +% { +% \ifthenelse{ \equal{#1}{crs} } +% { +% \fancypagestyle{crs}{ % +% \lhead{#4} +% \chead{\textbf{#2}} +% \rhead{Cours}} +% \thispagestyle{crs} +% } +% { +% \ifthenelse{ \equal{#1}{act} } +% { +% \fancypagestyle{act}{ % +% \lhead{#4} +% \chead{\textbf{#2}} +% \@ifmtarg{#3}{ \rhead{Activité} }{ \rhead{Activité - #3} }} +% \thispagestyle{act} +% } +% { +% \ifthenelse{ \equal{#1}{exo} } +% { +% \fancypagestyle{exo}{ % +% \lhead{#4} +% \chead{\textbf{#2}} +% \@ifmtarg{#3}{\rhead{Exercices}}{\rhead{Exercices - #3}}} +% \thispagestyle{exo} +% } +% } +% } +% } +% } +% } +% } % -% type = 1 -> \arabic -% type = a -> \alph -% type = A -> \Alph -% type = i -> \roman -% type = I -> \Roman -% \arabic par défaut -\newcounter{cours_questionscounter} -\newcommand{\questionsseparator}{.} -\newenvironment{questions}[1][1] { - \ifthenelse{ \equal{#1}{i} } - { - \def\cType{\roman} - \renewcommand{\questionsseparator}{)} - } - { - \ifthenelse{ \equal{#1}{I} } - { - \def\cType{\Roman} - \renewcommand{\questionsseparator}{.} - } - { - \ifthenelse{ \equal{#1}{a} } - { - \def\cType{\alph} - \renewcommand{\questionsseparator}{)} - } - { - \ifthenelse{ \equal{#1}{A} } - { - \def\cType{\Alph} - \renewcommand{\questionsseparator}{.} - } - { - \def\cType{\arabic} - \renewcommand{\questionsseparator}{.} - } - } - } - } - \begin{list}{\textbf{\cType{cours_questionscounter}\questionsseparator}}{ - \usecounter{cours_questionscounter} - \itemindent=0em - \itemsep=8pt \leftmargin=0,54cm} - } { - \end{list} -} -\newcommand{\bq}{\begin{questions}} -\newcommand{\eq}{\end{questions}} - - -% setAngle{nom}{valeur} -\newcommand{\setAngle}[2] { - $\widehat{#1} = #2 \textsuperscript{o}$ -} - - - % triUn{nom}{long1}{long2}{long3} -\newcommand{\triUn}[4] { - \StrLen{#1}[\lNom] - \ifthenelse{ \equal{\lNom}{3} } - { - \StrChar{#1}{1}[\sA] - \StrChar{#1}{2}[\sB] - \StrChar{#1}{3}[\sC] - - \begin{tikzpicture} - \tkzDefPoint(0,0){\sA} - \tkzDefPoint(#2,0){\sB} - \tkzDrawCircle[R,color=white](\sA,#3 cm) - \tkzDrawCircle[R,color=white](\sB,#4 cm) - \tkzInterCC[R](\sA,#3 cm)(\sB,#4 cm) - \tkzGetPoints{\sC}{Z} - \tkzDrawPolygon(\sA,\sB,\sC) - - \tkzLabelSegment(\sA,\sB){$#2$ cm} - \tkzLabelSegment(\sA,\sC){$#3$ cm} - \tkzLabelSegment(\sB,\sC){$#4$ cm} - - \tkzLabelPoint[left](\sA){$\sA$} - \tkzLabelPoint[right](\sB){$\sB$} - \tkzLabelPoint[above](\sC){$\sC$} - \end{tikzpicture} - } -} - - - % triDeux{nom}{long1}{long2}{angle} -\newcommand{\triDeux}[4] { - \StrLen{#1}[\lNom] - \ifthenelse{ \equal{\lNom}{3} } - { - \StrChar{#1}{1}[\sA] - \StrChar{#1}{2}[\sB] - \StrChar{#1}{3}[\sC] - - \def\nAngle{#4} - - \begin{tikzpicture} - \tkzDefPoint(0,0){\sA} - \tkzDefPoint(#2,0){\sB} - \tkzDrawSegment(\sA,\sB) - - \tkzDefPointBy[rotation=center {\sA} angle {#4}](\sB) - \tkzGetPoint{Z} - \tkzDefPointBy[homothety=center {\sA} ratio {#3/#2}](Z) - \tkzGetPoint{\sC} - - \tkzDrawSegment(\sA,\sC) - \tkzDrawSegment(\sB,\sC) - - \tkzLabelPoint[left](\sA){$\sA$} - \tkzLabelPoint[right](\sB){$\sB$} - \tkzLabelPoint[above](\sC){$\sC$} - \end{tikzpicture} - } -} - - - % triTrois{nom}{long}{angle1}{angle2} -\newcommand{\triTrois}[4] { - \StrLen{#1}[\lNom] - \ifthenelse{ \equal{\lNom}{3} } - { - \StrChar{#1}{1}[\sA] - \StrChar{#1}{2}[\sB] - \StrChar{#1}{3}[\sC] - - \def\nAngle{#4} - - \begin{tikzpicture} - \tkzDefPoint(0,0){\sA} - \tkzDefPoint(#2,0){\sB} - \tkzDrawSegment(\sA,\sB) - - \tkzDefPointBy[rotation=center {\sA} angle {#3}](\sB) - \tkzGetPoint{Y} - \tkzDefPointBy[rotation=center {\sB} angle {-#4}](\sA) - \tkzGetPoint{Z} - - \tkzInterLL(\sA,Y)(\sB,Z) - \tkzGetPoint{\sC} - - \tkzDrawSegment(\sA,\sC) - \tkzDrawSegment(\sB,\sC) - - \tkzLabelPoint[left](\sA){$\sA$} - \tkzLabelPoint[right](\sB){$\sB$} - \tkzLabelPoint[above](\sC){$\sC$} - \end{tikzpicture} - } -} -%--% +% +% % exercice<[type]> +% % +% % type = 1 -> \arabic +% % type = a -> \alph +% % type = A -> \Alph +% % type = i -> \roman +% % type = I -> \Roman +% % \arabic par défaut +% \newcounter{exercicecounter} +% \newcommand{\exercice}[1][1] { +% \ifthenelse{ \equal{#1}{i} } +% { +% \def\cType{\roman} +% } +% { +% \ifthenelse{ \equal{#1}{I} } +% { +% \def\cType{\Roman} +% } +% { +% \ifthenelse{ \equal{#1}{a} } +% { +% \def\cType{\alph} +% } +% { +% \ifthenelse{ \equal{#1}{A} } +% { +% \def\cType{\Alph} +% } +% { +% \def\cType{\arabic} +% } +% } +% } +% } +% \stepcounter{exercicecounter} +% \textbf{Exercice \cType{exercicecounter}\ } +% } +% +% +% % questions<[type]> +% % +% % type = 1 -> \arabic +% % type = a -> \alph +% % type = A -> \Alph +% % type = i -> \roman +% % type = I -> \Roman +% % \arabic par défaut +% \newcounter{cours_questionscounter} +% \newcommand{\questionsseparator}{.} +% \newenvironment{questions}[1][1] { +% \ifthenelse{ \equal{#1}{i} } +% { +% \def\cType{\roman} +% \renewcommand{\questionsseparator}{)} +% } +% { +% \ifthenelse{ \equal{#1}{I} } +% { +% \def\cType{\Roman} +% \renewcommand{\questionsseparator}{.} +% } +% { +% \ifthenelse{ \equal{#1}{a} } +% { +% \def\cType{\alph} +% \renewcommand{\questionsseparator}{)} +% } +% { +% \ifthenelse{ \equal{#1}{A} } +% { +% \def\cType{\Alph} +% \renewcommand{\questionsseparator}{.} +% } +% { +% \def\cType{\arabic} +% \renewcommand{\questionsseparator}{.} +% } +% } +% } +% } +% \begin{list}{\textbf{\cType{cours_questionscounter}\questionsseparator}}{ +% \usecounter{cours_questionscounter} +% \itemindent=0em +% \itemsep=8pt \leftmargin=0,54cm} +% } { +% \end{list} +% } +% \newcommand{\bq}{\begin{questions}} +% \newcommand{\eq}{\end{questions}} +% +% +% % setAngle{nom}{valeur} +% \newcommand{\setAngle}[2] { +% $\widehat{#1} = #2 \textsuperscript{o}$ +% } +% +% +% % triUn{nom}{long1}{long2}{long3} +% \newcommand{\triUn}[4] { +% \StrLen{#1}[\lNom] +% \ifthenelse{ \equal{\lNom}{3} } +% { +% \StrChar{#1}{1}[\sA] +% \StrChar{#1}{2}[\sB] +% \StrChar{#1}{3}[\sC] +% +% \begin{tikzpicture} +% \tkzDefPoint(0,0){\sA} +% \tkzDefPoint(#2,0){\sB} +% \tkzDrawCircle[R,color=white](\sA,#3 cm) +% \tkzDrawCircle[R,color=white](\sB,#4 cm) +% \tkzInterCC[R](\sA,#3 cm)(\sB,#4 cm) +% \tkzGetPoints{\sC}{Z} +% \tkzDrawPolygon(\sA,\sB,\sC) +% +% \tkzLabelSegment(\sA,\sB){$#2$ cm} +% \tkzLabelSegment(\sA,\sC){$#3$ cm} +% \tkzLabelSegment(\sB,\sC){$#4$ cm} +% +% \tkzLabelPoint[left](\sA){$\sA$} +% \tkzLabelPoint[right](\sB){$\sB$} +% \tkzLabelPoint[above](\sC){$\sC$} +% \end{tikzpicture} +% } +% } +% +% +% % triDeux{nom}{long1}{long2}{angle} +% \newcommand{\triDeux}[4] { +% \StrLen{#1}[\lNom] +% \ifthenelse{ \equal{\lNom}{3} } +% { +% \StrChar{#1}{1}[\sA] +% \StrChar{#1}{2}[\sB] +% \StrChar{#1}{3}[\sC] +% +% \def\nAngle{#4} +% +% \begin{tikzpicture} +% \tkzDefPoint(0,0){\sA} +% \tkzDefPoint(#2,0){\sB} +% \tkzDrawSegment(\sA,\sB) +% +% \tkzDefPointBy[rotation=center {\sA} angle {#4}](\sB) +% \tkzGetPoint{Z} +% \tkzDefPointBy[homothety=center {\sA} ratio {#3/#2}](Z) +% \tkzGetPoint{\sC} +% +% \tkzDrawSegment(\sA,\sC) +% \tkzDrawSegment(\sB,\sC) +% +% \tkzLabelPoint[left](\sA){$\sA$} +% \tkzLabelPoint[right](\sB){$\sB$} +% \tkzLabelPoint[above](\sC){$\sC$} +% \end{tikzpicture} +% } +% } +% +% +% % triTrois{nom}{long}{angle1}{angle2} +% \newcommand{\triTrois}[4] { +% \StrLen{#1}[\lNom] +% \ifthenelse{ \equal{\lNom}{3} } +% { +% \StrChar{#1}{1}[\sA] +% \StrChar{#1}{2}[\sB] +% \StrChar{#1}{3}[\sC] +% +% \def\nAngle{#4} +% +% \begin{tikzpicture} +% \tkzDefPoint(0,0){\sA} +% \tkzDefPoint(#2,0){\sB} +% \tkzDrawSegment(\sA,\sB) +% +% \tkzDefPointBy[rotation=center {\sA} angle {#3}](\sB) +% \tkzGetPoint{Y} +% \tkzDefPointBy[rotation=center {\sB} angle {-#4}](\sA) +% \tkzGetPoint{Z} +% +% \tkzInterLL(\sA,Y)(\sB,Z) +% \tkzGetPoint{\sC} +% +% \tkzDrawSegment(\sA,\sC) +% \tkzDrawSegment(\sB,\sC) +% +% \tkzLabelPoint[left](\sA){$\sA$} +% \tkzLabelPoint[right](\sB){$\sB$} +% \tkzLabelPoint[above](\sC){$\sC$} +% \end{tikzpicture} +% } +% } +% %--% -%-- Macros modifiées -% on n'affiche pas le numéro de page -\renewcommand{\thepage}{} - -% numérotation des sections -\renewcommand{\thesection}{\Roman{section}.} - -\renewcommand{\thesubsection}{\arabic{section})} -%--% +% %-- Macros modifiées +% % on n'affiche pas le numéro de page +% \renewcommand{\thepage}{} +% +% % numérotation des sections +% \renewcommand{\thesection}{\Roman{section}.} +% +% \renewcommand{\thesubsection}{\arabic{section})} +% %--% \makeatother %% MACROS : FIN