latex-homework/cours/cours.cls

361 lines
7.5 KiB
OpenEdge ABL
Raw Normal View History

2016-03-22 11:49:55 +00:00
%%%
%%%
%%% Classe : cours.cls
%%% Version : 1.0
%%% Date : 29/07/10
%%% Auteur : Jeff LANCE
%%%
%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{cours}[2010/07/29 Document de cours, V1.0]
2016-05-28 21:24:38 +00:00
2016-03-22 11:49:55 +00:00
%-- classe de base
\LoadClass[a4paper, 10pt]{article}
%--%
2016-05-28 21:24:38 +00:00
2016-03-22 11:49:55 +00:00
%-- extensions
% PERSONNELLES
% commun: contient des définitions et extensions de base pour tout.
\RequirePackage{commun}
% sortie
% \RequirePackage[pdftex]{graphicx}
2016-03-22 11:49:55 +00:00
\RequirePackage{comment}
% mise en page
\RequirePackage{fancyhdr}
%--%
2016-03-22 11:49:55 +00:00
%-- 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}
%--%
2016-05-28 21:24:38 +00:00
%-- paramétrage de certains packages
2016-03-22 11:49:55 +00:00
% metapost
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi
% tkz
\usetkzobj{all} % on charge tous les objets
%--%
2016-05-28 21:24:38 +00:00
2016-03-22 11:49:55 +00:00
%% MACROS : DEBUT
\makeatletter
%-- Macros personnelles
% Vtextvisiblespace[largeur]
\newcommand\Vtextvisiblespace[1][.3em]{%
\mbox{\kern.06em\vrule height.3ex}%
\vbox{\hrule width#1}%
\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}
}
}
}
}
}
}
}
% exercice<[type]>
%
% type = 1 -> \arabic
% type = a -> \alph
% type = A -> \Alph
% type = i -> \roman
% type = I -> \Roman
% \arabic par défaut
2016-03-31 17:49:20 +00:00
\newcounter{exercicecounter}
2016-03-22 11:49:55 +00:00
\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}
}
}
}
}
2016-03-31 17:49:20 +00:00
\stepcounter{exercicecounter}
\textbf{Exercice \cType{exercicecounter}\ }
2016-03-22 11:49:55 +00:00
}
% 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}}
2016-03-22 11:49:55 +00:00
% 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}
}
}
%--%
2016-05-28 21:24:38 +00:00
%-- Macros modifiées
2016-03-22 11:49:55 +00:00
% on n'affiche pas le numéro de page
\renewcommand{\thepage}{}
% numérotation des sections
\renewcommand{\thesection}{\Roman{section}.}
\renewcommand{\thesubsection}{\arabic{section})}
2016-05-28 21:24:38 +00:00
%--%
2016-03-22 11:49:55 +00:00
\makeatother
%% MACROS : FIN