Outils d'utilisateurs

Outils du Site


sylcha:macros

Macros

Un fichier de macros perso, quelques fois créées de toutes pièces mais le plus souvent glanées sur le net et adaptées.

%#########################################################################
%
%             M A C R O S
%
% version du 01/06/2009
%
%#########################################################################
 
 
%-------------------------------------------------------------------------
%  Texte dans un cercle
%-------------------------------------------------------------------------
\newcommand{\txtcercle}[1]{%
\tikz[baseline=(X.base)] \filldraw[fill=black!20, draw=none]%
 (0,0) node (X) {#1} circle (8pt);
}
 
%-------------------------------------------------------------------------
% Macro bareme
%-------------------------------------------------------------------------
\newcommand{\bareme}[1]{%
\marginpar{\small \textbf{#1}}
}
 
%-------------------------------------------------------------------------
% Macro Titre Exercice avec compteur
%-------------------------------------------------------------------------
\newcounter{num}
\newcommand{\exo}[1]{\addtocounter{num}{1}%
\subsection*{ \textsc{Exercice~\thenum~{\itshape \textsf{#1}}}}%
}
 
 
%-------------------------------------------------------------------------
% Autre Macro Titre Exercice avec compteur (fourier)
%-------------------------------------------------------------------------
\newcounter{numf}
\newcommand{\exof}[1]{%
\tablarg{1}%
\addtocounter{numf}{1}%
\subsection*{%
\begin{tabular}{p{0.97\columnwidth}}
\rowcolor{gris}
$\blacktriangleright$~Exercice~\thenumf~ { \itshape #1}
\end{tabular}
}}
 
 
%-------------------------------------------------------------------------
% Macro Annexe avec compteur
%-------------------------------------------------------------------------
\newcounter{numannexe}
\newcommand{\annexe}[1]{\addtocounter{numannexe}{1}%
\subsection*{{\sffamily Annexe~\thenumannexe~{\itshape #1}}}%
}
 
\newcounter{numannexef}
\newcommand{\annexef}[1]{\addtocounter{numannexef}{1}%
\subsection*{Annexe~\thenumannexef~{\itshape #1}}%
}
 
 
%-------------------------------------------------------------------------
% Macro Titre Exercice Brevet avec compteur
%-------------------------------------------------------------------------
\newcounter{exobrevet}
\newcommand{\exob}[1]{%
\tablarg{1}%
\addtocounter{exobrevet}{1}%
\subsection*{%
\begin{tabular}{p{0.97\columnwidth}}
\rowcolor{gris}
$\blacktriangleright$~Exercice~\theexobrevet~ -- \textit{#1}%
%\hrulefill
\end{tabular}
}}
 
 
%-------------------------------------------------------------------------
% Ensembles de nombres
%-------------------------------------------------------------------------
\newcommand{\RR}{\ensuremath{\mathbb{R}}}
\newcommand{\QQ}{\ensuremath{\mathbb{Q}}}
\newcommand{\DD}{\ensuremath{\mathbb{D}}}
\newcommand{\ZZ}{\ensuremath{\mathbb{Z}}}
\newcommand{\NN}{\ensuremath{\mathbb{N}}}
 
 
%-------------------------------------------------------------------------
% Abréviations
%-------------------------------------------------------------------------
\newcommand{\cad}{c'est-à-dire~}
\newcommand{\dps}[1]{{\displaystyle #1}}
\newcommand{\ms}[1]{\mathsf{#1}}
\newcommand{\md}[1]{\mathsf{\displaystyle #1}}
\newcommand{\etoile}{\Pisymbol{pzd}{72}}
\newcommand{\equi}{\ensuremath{\Leftrightarrow}}
 
 
%-------------------------------------------------------------------------
% Ligne pour le Nom et le Prénom en devoir
%-------------------------------------------------------------------------
\newcommand{\nomprenom}{
\setlength\arrayrulewidth{0.5pt}
%\renewcommand{\arraystretch}{2}
	{\large
\noindent
	\begin{tabular}{p{0.42\textwidth}p{0.08\textwidth}p{0.42\textwidth}}
       	\textbf{Nom}~:~\dotfill & & \textbf{Prénom}~:~\dotfill
   	\end{tabular}
   	}
}
 
 
%-------------------------------------------------------------------------
% Centrage cellule dans tableau
%-------------------------------------------------------------------------
\newcommand{\cc}[1]{\multicolumn{1}{|c|}{#1}}
 
 
%-------------------------------------------------------------------------
% Arc orienté
%-------------------------------------------------------------------------
\newcommand{\ArcOr}[1]{\ensuremath{\overset{\curvearrowright}{#1}}}
 
 
%-------------------------------------------------------------------------
% Arc de cercle
%-------------------------------------------------------------------------
\newlength{\longarc}
\newcommand{\arc}[1]{\settowidth{\longarc}{$#1$}%
         \addtolength{\longarc}{-0.3em}%
\unitlength \longarc%
\ensuremath{%
         \stackrel{\begin{picture}(1,0.4)
                 \qbezier(0,0)(0.5,0.4)(1,0)
         \end{picture}}
         {#1}
}}
 
 
% ------------------------------------------------------------
% Ecriture des intervalles
%-------------------------------------------------------------------------
\newcommand{\into}[2]% intervalle ouvert ]#1;#2[
{\ensuremath{\left]\,#1\,;\,#2\,\right[}}
\newcommand{\intof}[2]% intervalle ouvert-fermᅵ]#1;#2]
{\ensuremath{\left]\,#1\,;\,#2\,\right]}}
\newcommand{\intfo}[2]% intervalle fermï¿œouvert [#1;#2[
{\ensuremath{\left[\,#1\,;\,#2\,\right[}}
\newcommand{\intf}[2]% intervalle fermᅵ[#1,#2]
{\ensuremath{\left[\,#1\,;\,#2\,\right]}}
 
 
%-------------------------------------------------------------------------
% Vecteurs, Repères, Coordonnées, Bases.....
%-------------------------------------------------------------------------
\newcommand{\vect}[1]{%
	\ensuremath{%
	\overrightarrow{\kern-2pt\mathstrut #1\kern2pt}
	}
}
 
\newcommand{\repr}[3]{%
\ensuremath{%
\left( #1\,;\,\vect{#2},\,\vect{#3} \right)}%
}
 
\newcommand{\ora}[1]{%
\overrightarrow{#1}%
}
\newcommand{\Repr}[3]{%
\ensuremath{%
\left( #1\,;\,\ora{#2},\,\ora{#3} \right)}%
}
 
\newcommand{\Oij}{%
\Repr{O}{i}{j}}
 
\newcommand{\coord}[3]{%
\ensuremath{%
#1\,\left(#2\,;\,#3\right)
}
}
 
\newcommand{\Coord}[3]{%
\ensuremath{%
\vect{#1}\,\left(
	\begin{array}{c}
		#2\\
		#3
	\end{array}
	\right)
}
}
 
\newcommand{\base}[2]{%
\ensuremath{%
\left(\ora{#1}\,;\,\ora{#2}\right)}
}
 
\newcommand{\norme}[1]{%
\ensuremath{%
\left\| \ora{#1} \right\|}}
 
 
 
 
%-------------------------------------------------------------------------
% Mise en page : barre à gauche
%-------------------------------------------------------------------------
\newsavebox{\boite}
\newlength{\haut}
\newlength{\marge}\setlength{\marge}{5mm}
\newenvironment{barreagauche}{%
\vspace{5pt}
\begin{lrbox}{\boite}
\begin{minipage}[b]{.97\textwidth}}{%
\end{minipage}
\end{lrbox}
\settoheight{\haut}{\usebox{\boite}}
%}
\addtolength{\haut}{3pt}
\rule{1mm}{\haut}\hfill
\usebox{\boite}
}
 
%-------------------------------------------------------------------------
% Mise en page : titrage exos
%-------------------------------------------------------------------------
\newcommand{\titre}[1]{%
\etoile{}~\textit{#1}
}
 
 
%-------------------------------------------------------------------------
% Points sur une largeur fixée (pour champs à compléter)
%-------------------------------------------------------------------------
\newcommand{\points}[1]{%
\renewcommand{\arraystretch}{1}
\begin{tabular}{p{#1}}
\dotfill
\end{tabular}
}
 
 
%-------------------------------------------------------------------------
% Pour fixer la largeur texte-ligne dans un tableau
%-------------------------------------------------------------------------
\newcommand{\tablarg}[1]{%
\renewcommand{\arraystretch}{#1}
}
 
 
%-------------------------------------------------------------------------
% Mise en page : boites
%-------------------------------------------------------------------------
\newcommand{\Boite}[1]{
\setlength{\fboxsep}{3mm}
\shadowbox{
\begin{minipage}{0.97\textwidth}
#1
 
\end{minipage}
}
\setlength{\fboxsep}{1mm}
}
 
 
 
%-------------------------------------------------------------------------
% Commandes pour les propriétés
%-------------------------------------------------------------------------
 
 
% Dans un environnement 'book' avec chapitrage
% --> commande 'Prop'
 
\newcounter{comptprop}
\newcommand{\Prop}[2][]{
\addtocounter{comptprop}{1}%
 
\vspace{10pt}
 
\setlength{\fboxsep}{3mm}
\shadowbox{
\begin{minipage}{0.94\textwidth}
\textbf{Propriété\thechapter-\thecomptprop}~:#1
#2
 
\end{minipage}
}
\setlength{\fboxsep}{1mm}
}
 
 
 
 
% Dans un environnement 'article' sans chapitrage
% --> commande 'Propriete'
 
\newcounter{comptpropriete}
\newcommand{\Propriete}[1]{
\addtocounter{comptpropriete}{1}%
 
%\vspace{15pt}
 
\setlength{\fboxsep}{3mm}
\shadowbox{
\begin{minipage}{0.97\textwidth}
\textbf{Propriété~\thecomptpropriete}~:
#1
\end{minipage}
}
\setlength{\fboxsep}{1mm}
}
 
 
 
% Environnement "SI ... ALORS ... "
% --> lié compteur que la commande 'Propriete'
 
%\newcounter{comptsialors}
\newcommand{\sialors}[2]{
\addtocounter{comptpropriete}{1}%
 
%\vspace{15pt}
 
\setlength{\fboxsep}{1.5mm}
\shadowbox{
\begin{minipage}{0.97\textwidth}
\textbf{Propriété~\thecomptpropriete}~:
\ovalbox{Si}~#1\\
\ovalbox{alors}~#2
\end{minipage}
}
\setlength{\fboxsep}{1mm}
}
 
 
 
%-------------------------------------------------------------------------
%  Environnement pour les règles
%-------------------------------------------------------------------------
\newcounter{comptregle}
\newcommand{\Regle}[1]{
\addtocounter{comptregle}{1}%
 
%\vspace{15pt}
 
\setlength{\fboxsep}{3mm}
\shadowbox{
\begin{minipage}[b]{0.97\textwidth}
\textbf{Règle~\thecomptregle}~:
#1
 
\end{minipage}
}
\setlength{\fboxsep}{1mm}
}
 
 
%-------------------------------------------------------------------------
% Commandes pour les définitions *********************
%-------------------------------------------------------------------------
 
%--------- dans une classe 'book'
\newcounter{comptdef}
\newcommand{\Def}[2][]{
\addtocounter{comptdef}{1}
 
\vspace{10pt}
 
\setlength{\fboxsep}{3mm}
\Ovalbox{
\begin{minipage}{0.95\textwidth}
\textbf{Définition~\thechapter-\thecomptdef#1:}
 
#2
 
\end{minipage}
}
}
 
 
% ----------- dans une classe 'article'
\newcommand{\Definition}[1]{
\addtocounter{comptdef}{1}
 
%\vspace{15pt}
 
\setlength{\fboxsep}{3mm}
\ovalbox{
\begin{minipage}{0.97\textwidth}
\textbf{Définition~\thecomptdef:}
#1
\end{minipage}
}
 
%\vspace{10pt}
 
}
 
 
%-------------------------------------------------------------------------
% Cadres
%-------------------------------------------------------------------------
\newcommand{\Cadre}[3]{
\boxput*(#1,1){\colorbox{white}{#2}}
{\setlength{\fboxsep}{12pt}
\fbox{\begin{Bflushleft}
#3\end{Bflushleft}}}}
 
 
 
 
 
%####################################################################
%
% Pris sur le net.....
%
%####################################################################
 
 
%--------------------------------------------------------------------
% La fameuse \trou de Olivier K qui remplace un mot 
% par un trou de la meme taille
%--------------------------------------------------------------------
\def\m@th{\mathsurround=0pt}
\def\trou#1{
    \setbox0=\hbox{\textbf{#1}} \dp0=0pt \m@th
    \underline{\hbox{\hskip\wd0}}
}
 
\newcommand*{\makepbox}[2]{%
  \makebox[0pt][l]{\parbox[t]{\linewidth}{#1#2}}
}
 
%--------------------------------------------------------------------
% Titrage pour devoir
% USAGE : \lcr{Tes\\ commentaires}{Mathématiques no}{nom:\\ prénom:}
%--------------------------------------------------------------------
\newcommand{\lcr}[3]{%
  \par \noindent
  \makepbox{\raggedright}{#1}%
  \makepbox{\centering}{#2}%
  \makepbox{\raggedleft}{#3}%
  \par
} 
 
 
%-------------------------------------------------------------------------
% Mise en page
%
% \textefigure{largeur_figure}{largeur_texte}{figure}{echelle}{texte}
%-------------------------------------------------------------------------
\newcommand{\textefigure}[5]{%
\begin{tabular}{lp{0.5cm}l}
	\begin{minipage}{#2}
	#5
	\end{minipage}
	& &
	\begin{minipage}{#1}
	\includegraphics[scale=#4]{#3}
	\end{minipage}
\end{tabular}
}
 
\newcommand{\figuretexte}[5]{%
\begin{tabular}{lp{0.5cm}l}
	\begin{minipage}{#1}
	\includegraphics[scale=#4]{#3}
	\end{minipage}
	& &
	\begin{minipage}{#2}
	#5
	\end{minipage}
\end{tabular}
}
 
%-------------------------------------------------------------------------
% Mise en page
%
% liste numérotée personnalisé 
%-------------------------------------------------------------------------
\newenvironment{myenumerate}{
\renewcommand{\theenumi}{\arabic{enumi}}
\def\labelenumi{{\bf \theenumi .}}
\begin{enumerate}}{\end{enumerate}}
 
 
 
 
 
%-------------------------------------------------------------------------
% Calcul de pgcd (utilise xlop)
%
% liste des divisions successives de l'algorithme d'euclide
% SANS LA DERNIÈRE !!!
%-------------------------------------------------------------------------
 
\newcommand\euclide[2]{%
  \opcopy{#1}{r0}
  \opcopy{#2}{r1}
  \loop
    \opidiv*{r0}{r1}{q}{r}%
    \opcmp{r}{0}
  \ifopneq
    \opidiv[style=text]{r0}{r1}\endgraf
    \opcmp{r}{0}%
    \endgraf
    \opcopy{r1}{r0}
    \opcopy{r}{r1}
  \repeat
    	\opidiv[style=text]{r0}{r1}\endgraf
 }
 
 \newcommand\Pgcd[2]{%
 \ensuremath{%
\opgcd{#1}{#2}{p}
 \opprint{p}
 }
 }
 
  \newcommand\PGCD[2]{%
\opgcd{#1}{#2}{pp}
 \ensuremath{%
\mathrm{pgcd}(#1\;;\;#2)=\opprint{pp}
 }
 }
 
 
 
%-------------------------------------------------------------------------
% 
% Disposition texte <--> image
% 
%-------------------------------------------------------------------------
 
 
 \newlength{\ltxt}
\newcommand{\compo}[4]{
\setlength{\ltxt}{\linewidth}
\setbox#1=\hbox{\includegraphics[scale=#3]{#2.#1}}
\addtolength{\ltxt}{-\wd#1}
\addtolength{\ltxt}{-10pt}
\addtolength{\ltxt}{-2em}
\begin{minipage}{\wd#1}
\includegraphics[scale=#3]{#2.#1}
\end{minipage}
\hfill\hspace{2em}\hfill
\begin{minipage}{\ltxt}
#4
\end{minipage}
}
 
\newlength{\lntxt}
\newcommand{\Compo}[4]{
\setlength{\lntxt}{\linewidth}
\setbox#1=\hbox{\includegraphics[scale=#3]{#2}}
\addtolength{\lntxt}{-\wd#1}
\addtolength{\lntxt}{-10pt}
\addtolength{\ltxt}{-2em}
\begin{minipage}{\wd#1}
\includegraphics[scale=#3]{#2}
\end{minipage}
\hfill\hspace{2em}\hfill
\begin{minipage}{\lntxt}
#4
\end{minipage}
}
 
\newlength{\lnttxt}
\newcommand{\dispo}[3]{
\setlength{\lnttxt}{\linewidth}
\setbox#1=\hbox{#2}
\addtolength{\lnttxt}{-\wd#1}
\addtolength{\lnttxt}{-20pt}
\addtolength{\ltxt}{-2em}
\begin{minipage}{\wd#1}
#2
\end{minipage}
\hfill\hspace{2em}\hfill
\begin{minipage}{\lnttxt}
#3
\end{minipage}
}
sylcha/macros.txt · Dernière modification: 2009/06/01 23:35 par sylcha