%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% %% P R É A M B U L E %% %% ___________________________ %% %% %% %% BriCàMatH %% %% %% %% v 0.2 du 02/3/08 %% %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %############################################################################ %########################### PACKAGES ########################### %############################################################################ \usepackage[utf8]{inputenc}% codage utf8, sous linux principalement \usepackage[T1]{fontenc} \usepackage[dvips,% colorlinks=true,% pas de bordure autour des liens hyperfootnotes=false,% pas de lien pour les notes de bas de page citecolor=black,% liens noirs filecolor=black,% linkcolor=black,% urlcolor=black,% bookmarks=false,% pdfauthor={Christian TELLECHEA, administrateur de www.bricamath.net},% pdfcreator={LaTeX}]{hyperref} \usepackage[dvips,margin=1.5cm,noheadfoot]{geometry}% dimensions de la page \usepackage{amsmath,amssymb,amsfonts,textcomp}% pour les maths \usepackage{mathcomp}% utile pour les degrés avec \numprint : \numprint[\tcdegree]{nombre} \usepackage{array}% divers outils pour les tableaux %\usepackage{cellspace}% régler finement les espacements verticaux dans les tableaux \usepackage{hhline}% des lignes complexes dans les tableaux \usepackage{pstricks,pst-node,pst-plot,pst-math,pst-xkey,pst-text,pstricks-add}% Figures géométriques dans le code LaTeX \usepackage{wrapfig}% insère une figure flottante \usepackage{cancel}% pour barrer des termes dans les formules %\usepackage{xlop}% pour faire des calculs dans latex et poser des opérations comme à la main \usepackage{enumitem}% des énumérations paramétrables \usepackage{lmodern}% fonte modern \usepackage{mathrsfs}% fonte cursive : emploi \mathscr{TEXTE}, en majuscules %\usepackage{mathptmx}% fonte %\usepackage{mathpazo}% fonte %\usepackage{pslatex}% fonte Times %\usepackage{yhmath} \usepackage{multicol}% pour aller au delà de 2 colonnes \usepackage{ifthen}% pour faire des tests \usepackage{fp}% pour faire des calculs dans LaTeX \usepackage{setspace}% pour spécifier l'interlignage % importantion des petites capitales grasses \rmfamily\DeclareFontShape{T1}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{} \DeclareFontShape{T1}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{} \pagestyle{empty}% pas de pied de page ni d'en tête \usepackage[frenchb]{babel}% francisation \frenchbsetup{og=«,fg=»}% guillemets français dans le code % \setlength{\parindentFFN}{0mm}% notes de bas de page non indentées \setlength{\parindent}{0cm}% pas d'identation \usepackage[autolanguage]{numprint}% affichage correct des nombres %\mathcode`,="013B\relax% pour que la virgule serve de séparateur décimal en mode math --> inutile avec \numprint % %################################################################################# %########################### MES COMMANDES ########################### %################################################################################# % %______________________________________________________________ % % Pour avoir des lettres majuscules droites dans le mode math % % par JCC sur f.c.t.tex %______________________________________________________________ \DeclareMathSymbol{A}{\mathalpha}{operators}{65} \DeclareMathSymbol{B}{\mathalpha}{operators}{66} \DeclareMathSymbol{C}{\mathalpha}{operators}{67} \DeclareMathSymbol{D}{\mathalpha}{operators}{68} \DeclareMathSymbol{E}{\mathalpha}{operators}{69} \DeclareMathSymbol{F}{\mathalpha}{operators}{70} \DeclareMathSymbol{G}{\mathalpha}{operators}{71} \DeclareMathSymbol{H}{\mathalpha}{operators}{72} \DeclareMathSymbol{I}{\mathalpha}{operators}{73} \DeclareMathSymbol{J}{\mathalpha}{operators}{74} \DeclareMathSymbol{K}{\mathalpha}{operators}{75} \DeclareMathSymbol{L}{\mathalpha}{operators}{76} \DeclareMathSymbol{M}{\mathalpha}{operators}{77} \DeclareMathSymbol{N}{\mathalpha}{operators}{78} \DeclareMathSymbol{O}{\mathalpha}{operators}{79} \DeclareMathSymbol{P}{\mathalpha}{operators}{80} \DeclareMathSymbol{Q}{\mathalpha}{operators}{81} \DeclareMathSymbol{R}{\mathalpha}{operators}{82} \DeclareMathSymbol{S}{\mathalpha}{operators}{83} \DeclareMathSymbol{T}{\mathalpha}{operators}{84} \DeclareMathSymbol{U}{\mathalpha}{operators}{85} \DeclareMathSymbol{V}{\mathalpha}{operators}{86} \DeclareMathSymbol{W}{\mathalpha}{operators}{87} \DeclareMathSymbol{X}{\mathalpha}{operators}{88} \DeclareMathSymbol{Y}{\mathalpha}{operators}{89} \DeclareMathSymbol{Z}{\mathalpha}{operators}{90} %%_______________________________________________________________________________ % % Pour avoir des nombres à virgule en affichant des résultats de calculs par FP % % par JCC sur f.c.t.tex %_______________________________________________________________________________ \def\nombrefr#1{\expandafter{\changecomma{#1}}} \def\changecomma#1{\expandafter\changecommaaux#1.\changecommaaux} \def\changecommaaux#1.#2\changecommaaux{#1\ifx\empty#2\else,\expandafter\changecommapt#2\changecommapt\fi} \def\changecommapt#1.\changecommapt{#1} % %___________________________________ % % Teste si l'argument est un nombre % % par JCC sur f.c.t.tex %___________________________________ % Utilisation : \IFnombre{#1}{code si #1 est un nombre}{code si #1 n'est pas un nombre} % \decimalpart et \intergerpart contiennent les parties décimales et entières \makeatletter \newcount\integerpart \newcount\decimalpart \newcommand\IFnombre[3]{% \decimalpart=0 \afterassignment\defnext\integerpart=0#1\relax\@nil \expandafter\@dotorcomma\next\@nil \if\relax\@remain #2% \else #3 \fi } \def\defnext#1\@nil{\def\next{#1}}% \def\@dotorcomma{\@ifnextchar.{\@decimal}{\@comma}} \def\@comma{\@ifnextchar,{\@decimal}{\@endnumber}} \def\@decimal#1#2\@nil{% \afterassignment\defnext\decimalpart=0#2\@nil \expandafter\@endnumber\next\@nil } \def\@endnumber#1\@nil{\def\@remain{#1}} \makeatother % %_________________________________ % % Les listes et les numérotations %_________________________________ % % On sauvegarde les enumerate normaux un peu modifiés \newcommand*{\setenumeratedefaut}{ \setenumerate{itemsep=2ptplus2ptminus2pt,topsep=\the\itemsep,partopsep=0cm,parsep=0pt}} \setenumeratedefaut \let\oldenumerate=\enumerate \let\oldendenumerate=\endenumerate % %%%%% Numérotation des questions %%%%%%%%%% \newenvironment{Questions}{% \setenumerate{% itemsep=6ptplus6ptminus4pt,% séparation entre items topsep=6ptplus6ptminus4pt,% séparation entre l'environnement et le texte au dessus partopsep=0cm,% parsep=3ptplus1ptminus2pt,% séparation entre les paragraphes au sein d'un item leftmargin=*,% pas de marge gauche align=left,% alignement des numéros à gauche labelindent=0pt,% indentation du numéro widest=8),% largeur du numéro labelsep=0.5em,% séparation entre le numéro et le texte itemindent=0em% indentation du texte \setenumerate[1]{label=\textbf{\arabic*)}}% numéro du type 1) en gras \setenumerate[2]{label=\textbf{\alph*)}}% lettre de type a) en gras }\oldenumerate}{\oldendenumerate\setenumeratedefaut} % %%%%%% Numérotation des sous questions %%%%%%%% \newenvironment{SousQuestions}{% \setenumerate{ itemsep=3ptplus1ptminus2pt,% espacement vertical entre items topsep=4ptplus2ptminus4pt,% séparation avec avec le texte de l'item de hiérarchie plus haute, si celui ci existe partopsep=0pt,% parsep=3ptplus1ptminus2pt,% séparation entre les paragraphes au sein d'un item leftmargin=*,% align=left,% alignement des lettres à gauche widest=b),% largeur maxi du numéro labelsep=0.2em,% séparation entre le numéro et le texte itemindent=0em% indentation du texte }\oldenumerate}{\oldendenumerate\setenumeratedefaut} % % Puces \newenvironment{Puces}[1][1cm]% {\begin{list}% {$\bullet$}% { \setlength{\leftmargin}{#1}% marge à gauche, par défaut=1cm \setlength{\itemsep}{3ptplus3ptminus2pt}% espacement entre item \setlength{\topsep}{3ptplus3ptminus2pt}% espacement entre le paragraphe précédent et le 1er item }}% {\end{list}} % %_____________________________________ % % Macros pour l'en tête des devoirs %_____________________________________ % % Affiche "Nom : Prénom : Classe :" \newcommand\NomPrenom{\textbf{\textit{Nom :\hfill Prénom :\hfill Classe :}}\hspace*{2cm}} % % Affiche le titre de la page en gros, petites capitales et centré \newcommand*{\titre}[1]{{\centering\bfseries\scshape\Large#1\par}} % % Affiche en italique centré \newcommand*{\ladate}[1]{\vspace{0.1cm}{\centering\itshape#1\par}\vspace{0.1cm}} % % Affiche le texte en gras, petite capitale, avec une puce carrée au début \newcommand*{\exo}[1]{\vspace{0.35cm plus 0.15cm minus 0.15cm}\rule{1ex}{1ex}\hspace{1ex}\textsc{\textbf{#1}}\vspace{0.1cm plus 0.1cm minus 0.1cm}} % % Affiche 2 lignes d'épaisseur et d'écartement paramétrables \newcommand{\ligne}[5]{% %#1:espace avant #2:épaisseur 1ère ligne #3:séparation entre les 2 lignes #4:épaisseur 2ème ligne #5:espace après \vspace*{#1}\vspace*{-\baselineskip}% remonte d'une ligne \rule{\linewidth}{#2}\par% épaisseur 1ère ligne \vspace*{-\baselineskip}\vspace*{#3}% on remonte d'une ligne + on descend de la séparation \rule{\linewidth}{#4}\par% épaisseur 2ème ligne \vspace*{#5}% on met l'espace final } % % Affiche éventuellement le texte puis une double ligne (1 épaisse et 1 fine) \newcommand*{\DoubleLigne}[1]{#1\par\ligne{6pt plus 2pt minus 2pt}{1.5pt}{2pt}{0.3pt}{0pt}} % % Affiche éventuellement le texte puis une ligne fine \newcommand*{\SimpleLigne}[1]{#1\par\ligne{4pt plus 2pt minus 2pt}{0.3pt}{0pt}{0pt}{0pt}} % %________________________________________________________ % % Met en gras dans les formules math ou dans le texte %________________________________________________________ \makeatletter \newcommand*{\gras}[1]{% \ifmmode% si c'est le mode maths \newcommand*{\SAUVEnpunitcommand}{\npunitcommand}% \newcommand*{\SAUVEtext}{\text}% \renewcommand*{\npunitcommand}[1]{\ensuremath{\mathbf{##1}}}% pour \numprint --> met en gras les unités \renewcommand*{\text}[1]{\text@{\textbf{##1}}}% redéfinit la commande \text du package amstext \mathbf{#1}% \renewcommand*{\npunitcommand}{\SAUVEnpunitcommand}% rétablit la commande initiale \renewcommand*{\text}{\SAUVEtext}% on rétablit la commande \text initiale \else% \begingroup \mathversion{bold}% pour mettre les formules en gras s'il y en a \textbf{#1}% mode texte \endgroup \fi% } \makeatother % %____________________ % % Forme un arc %____________________ \newcommand*{\Angle}[1]{\ensuremath{\widehat{#1}}} % % Forme un arc commande n°1 : arc plutôt bas \makeatletter \newcount\r@pport \newdimen\r@ppord \newcount\kslant \newdimen\kslantd \newcommand*{\arc}[1]{\setbox0\hbox{$\m@th\displaystyle#1$}\kslant=\ht0 \divide\kslant by1000\multiply\kslant by\fontdimen1\textfont1 \divide\kslant by10000\kslantd=\kslant\fontdimen6\textfont1 \divide\kslantd by7750\kern\kslantd \r@ppord=\wd0\multiply\r@ppord by100\divide\r@ppord by\ht0 \multiply\r@ppord by300\advance\r@ppord by\ht0 \pspicture(0,0) \parabola[linewidth=.3pt]{-}(0,1.05\ht0)(.5\wd0,1.15\r@ppord) \endpspicture \kern-\kslantd\box0} \makeatother % % Forme un arc commande n°2 : arc plus haut, argument optionnel = épaisseur de la ligne \newcommand*{\Arc}[2][0.3pt]{% \newlength{\longarc} \settowidth{\longarc}{$#2$}% \unitlength\longarc% \ensuremath{% \stackrel{\begin{picture}(1,0.2)\linethickness{#1}\qbezier(0,0)(0.5,0.2)(1,0)\end{picture}}% {#2}% }% } % Met entre guillemets français \def\guill#1{\og{}#1\fg{}} % _______________________________________________________________________ %| | %| Met un signe = si \Delta est suffisemment petit, met \approx sinon | %|_______________________________________________________________________| \newcommand*{\SigneEgal}[1]{\FPabs{\Delta}{#1}\FPiflt{\Delta}{0.000000001}=\else\approx\fi} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% F I N D U P R É A M B U L E %%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%