(Maths sur Latex : Le retour) & (Cours à Polytechnique)

Bonsoir !
Vous vous souvenez de moi ? Le gars qui voulait pas du tout aller sur Latex et rester sur Word.
Bon et bien, et bien… maintenant, tant qu’à faire, j’essaie de passer entièrement sur Latex.
Pour l’instant, j’ai juste à taper des exercices sur un format très particulier que l’on m’a donné.
J’ai donc un fichier .sty à utiliser et je suis les consignes, c’est assez simple.

Mais voilà, j’aimerai bien m’envoler, et me débrouiller pour mes fichiers persos.
Par exemple, taper mon rapport de stage, voir même des cours.
Pour cela, il va falloir que je m’approprie encore plus Latex.

J’en appelle donc aux grands connaisseurs.
Si j’ai bien compris, je dois créer un fichier .sty avec tout ce qu’il me faut.
N’y aurait-il pas des fichiers standards dont je pourrais m’inspirer.
En plus cela fait énormément de commande à apprendre (tous les renomme variable etc…).
Enfin voilà, j’aimerais faire un truc bien, donc j’demande un peu d’aide.

De plus, si je fais ça, c’est parce que je commence à réfléchir à l’éventualité de taper mes cours à l’X.
L’argument premier est le fait que la tablette pour écrire est minuscule dans les amphithéâtres et en plus on a plein de polys.
Si par hasard, il y avait des témoignages, je ne serais pas contre.

Tu n’es pas du tout obligé de créer un fichier .asy! Je te le déconseille même si tu débutes en LaTeX ca va te compliquer la vie pour rien. Voici quelques liens qui sont assez utiles :

http://ctan.mines-albi.fr/info/lshort/french/lshort-fr.pdf : idéal pour démarrer, mais il y a peut-être un peu trop de détails…

http://forum.mathematex.net/ : un forum avec des pointures en LaTeX.

Tutoriel LaTeX : tutoriel pas mal foutu.

Sinon le mieux c’est de mettre les mains dans le cambouis et d’essayer. Le principe le plus fondamental en LaTeX est qu’il ne faut jamais essayer de forcer la mise en page soi-même en bidouillant avec des espaces, des sauts de ligne… La mise en page c’est LaTeX qui la gère.

Hésite pas à me poser des questions de toute façon :smiley:

Je sais pas trop quels amphis on vous a montré à l’incorpo mais les cours n’ont en général pas lieu en amphi Poincaré :wink:
Après c’est vrai que les tables de l’amphi Arago sont assez justes pour prendre des notes, mais en ne mettant pas trop de bordel dessus ça passe :smiley:

Deviling a écrit:

Bon et bien, et bien… maintenant, tant qu’à faire, j’essaie de passer entièrement sur Latex.
:smiley:
C’est bien !

Outre les liens donnés par Valvino, tu peux regarder aussi le site des tuteurs de l’ENS Ulm : tuteurs.ens.fr/logiciels/latex/

Valvino a écrit:

Tu n’es pas du tout obligé de créer un fichier .asy! Je te le déconseille même si tu débutes en LaTeX ca va te compliquer la vie pour rien.
Ah ? J’avais cru comprendre qu’au contraire cela facilitais le travail.
Par exemple en remplaçant \mathbb{N} par \N ou \varepsilon par \epsilon ou encore \begin(equarray) par \bea.
Qui plus est, étant donné que j’utilise pour mon travail, certains raccourcis, je risque d’y être habitué.

Et puis justement, pour ce qui est du travail de mise en page, il y a quand même des consignes à donner.
Du style feuille A4 police machin, chapitre police machin, numéro de page, etc, non ?

En ce moment, j’ai un fichier presque vierge, avec quelques commandes au début, un appel de fichier .sty.
Mais si je veux faire autre chose, je ne peux pas l’utiliser, et je dois me pencher dans la mise en page & co.

Ha ok je vois ce que tu veux dire. Mais en fait tu n’es obligé de passer par un fichier .sty! Tu peux donner les consignes de mises en page, définir tes commandes. Tu peux le faire directement dans ton fichier .tex, c’est ce que je fais. Mais effectivement tu peux le faire dans un fichier externe, à toi de voir ce que tu préfères.

Valvino a écrit:

Ha ok je vois ce que tu veux dire. Mais en fait tu n’es obligé de passer par un fichier .sty! Tu peux donner les consignes de mises en page, définir tes commandes. Tu peux le faire directement dans ton fichier .tex, c’est ce que je fais. Mais effectivement tu peux le faire dans un fichier externe, à toi de voir ce que tu préfères.
Oui mais dans l’éventualité ou je fais plusieurs document, cela m’évite de le retaper plusieurs fois.
Par contre, je ne sais pas trop ce qu’il faut mettre justement dans l’introduction du fichier ou dans un fichier .sty.
J’vais m’inspirer des quelques que j’ai mais y a énormément de commandes que je ne connais pas dans ces fichiers.
C’est pour cela que je voulais connaître un peu le principe, les commandes indispensables, les utiles, etc.
Et puis y a cette histoire de package… Enfin, plein de trucs qui va me compliquer la tâche.

Ps : Ce qui fait peur avec Latex, c’est qu’à chaque fois que l’on a besoin d’aide, on nous renvoi sur des tutoriels de 150 pages ^^.

En fait moi j’aime pas le principe du fichier .asy parceque j’adapte à chaque document ce que je veux, donc je fais un copier-coller d’un ancien document.

Bon sinon pour démarrer, voilà les commandes indispensables je trouve (après un % tout ce qui suit sur la ligne est considéré comme du commentaire par LaTeX)

Première étape

\documentclass{…} % cela indique à LaTeX quel genre de documents c’est. En général il y a article pour les textes cours, report pour les textes un peu plus longs et book pour les gros gros trucs. Il y a d’autres choses plus exotiques que je ne connais pas trop.

Deuxième étape les packages qui simplifient la vie

\usepackage[frenchb]{babel} % babel est là pour indiquer la langue du document et ainsi LaTeX saura adapter la mise en page à la langue. Attention il faut utiliser franchb, l’option french étant obsolète.

\usepackage[latin1]{inputenc} % permet de taper les caractère accentuées directement dans le code source, sinon faut taper des trucs genre « j’y suis all'e cet 'et'é »… donc package indispensable

\usepackage{lmodern} % charge la police, ici c’est la police vectorielle classique de LaTeX, tu en as d’autres du genre fourier

\usepackage{amsmath} charge toutes les commandes de maths vraiment très utiles du genre pour les matrices, etc \usepackage{amssymb} charge tout un tas de symboles mathématiques

Troisième étape les commandes

Tu as plusieurs façons de déclarer une commande. Premier cas tu veux faire un raccourci pour une commande qui existe déjà. C’est facile. Par exemple : \newcommand{\R}{\mathbf{R}}, ou encore newcommand{\eps}{\varepsilon}

Tu veux changer une commande qui existe déjà (attention à utiliser avec prudence). Par exemple pour remplacer les \leq par des \leqslant on peut mettre \renewcommand{\leq}{\leqslant}

Tu veux créer un nouvel objet mathématique. Je te conseille d’utiliser la commande \DeclareMathOperator{\supp}{\mathrm{supp}} par exemple (ici j’ai créé une commande pour le support d’une fonction).

Sachant qu’il y a beaucoup de trucs déja défini à la base, du genre \log ou \cos ou \det…

Quatrième étape déclarer quelques trucs utiles

\author{Moi même}
\title{mon premier truc latex}
\date{aujourd’hui!}

Voilà à quoi pourrait ressembler un document


\documentclass{article}

\usepackage[frenchb]{babel}
\usepackage[latin1]{inputenc} 
\usepackage{lmodern} 

\usepackage{amsmath} 
\usepackage{amssymb} 

\newcommand{\R}{\mathbf{R}}
\renewcommand{\leq}{\leqslant}
\DeclareMathOperator{\supp}{\mathrm{supp}}

\author{Moi même} 
\title{mon premier truc latex}
\date{aujourd'hui!}

\begin{document}

\maketitle 

\tableofcontents 

\section{Ca c'est le titre}
\subsection{Et le sous-titre}

LaTeX c'est \textbf{vraiment} rigolo. Je peux faire \emph{tout ce qui je veux}. Je peux même écrire que $i \in \R$, que $2 \leq 1$, que $\supp \cso = \emptyset$ ou que
\[\sum_{n=1}^{+\infty} \frac{1}{n} < +\infty.\]

\subsection{Youpla}

Boum

\section{hip}
\subsection{hip}
\subsubsection{hip}

Hourra!

\end{document}

Bon il y a encore 10000 trucs à dire, genre comment faire des théorèmes et tout. Bref c’est déjà une base, n’hésite pas à poster ici tes codes, au début on fait souvent des choses maladroites!

Bon courage

Et puis, tes commandes perso, si tu veux les créer une fois pour toutes, il suffit de les mettre dans un fichier à part

Par exemple, personnellement, j’utilise un document Macros.tex, qui est organisé comme suit :

\documentclass[options]{report}
%%% PACKAGES
%%% EN-TÊTE ET PIED-DE-PAGE
%%% DIMENSIONS
%%% ENVIRONNEMENTS
%%% MACROS

Ensuite, quand je tape un document LaTeX, je commence par \input{Macros} (si le document Macros.tex a été recopié dans le même fichier que le document LaTeX que je m’apprête à compiler), et voilà !

V@J

Valvino a écrit:

Bon il y a encore 10000 trucs à dire, genre comment faire des théorèmes et tout. Bref c’est déjà une base, n’hésite pas à poster ici tes codes, au début on fait souvent des choses maladroites!

Bon courage
Merci. Je commence à comprendre comment cela fonctionne.
J’essayerai de trouver une liste de commande pour compléter.

Pour le code, je m’y suis habitué.
J’ai le plus de mal pour tout ce qui est tableau, image, etc.
Mais cela viendra !

Edit : Pour V@J.
J’avais cru comprendre que c’est ce que l’on faisait avec les fichiers .sty
Et ma question portait justement sur le nom des packages utiles et des commandes pour modifier les dimensions, etc.

Salut

En ce qui concerne le fait de taper tes cours à l’X, je ne sais pas si ça te sera très utile. J’ai peur que tu n’imagines pas bien comment se passent les cours, c’est vraiment très très différent de la prépa… Enfin tu jugeras par toi-même !

Pour modifier les dimensions je te conseille le package geometry, avec la commande \geometry{vmargin=…cm,hmargin=…cm} à mettre dans le préambule.

Une précision :
Valvino a écrit:

\usepackage[latin1]{inputenc} % permet de taper les caractère accentuées directement dans le code source, sinon faut taper des trucs genre « j’y suis all'e cet 'et'é »… donc package indispensable
Cette ligne dépend de l’encodage que tu utilises : c’est souvent latin1, mais ça peut aussi être utf8, ou autres. Si ton encodage n’est pas latin1, remplacer [latin1] par ce qu’il faut.

Bobdémaths a écrit:

Salut

En ce qui concerne le fait de taper tes cours à l’X, je ne sais pas si ça te sera très utile. J’ai peur que tu n’imagines pas bien comment se passent les cours, c’est vraiment très très différent de la prépa… Enfin tu jugeras par toi-même !
Chuuuuuuuuuuut :smiling_imp:

Deviling a écrit:

[quote=« Valvino »]
Ha ok je vois ce que tu veux dire. Mais en fait tu n’es obligé de passer par un fichier .sty! Tu peux donner les consignes de mises en page, définir tes commandes. Tu peux le faire directement dans ton fichier .tex, c’est ce que je fais. Mais effectivement tu peux le faire dans un fichier externe, à toi de voir ce que tu préfères.
Oui mais dans l’éventualité ou je fais plusieurs document, cela m’évite de le retaper plusieurs fois.
[/quote]
Copier-coller.
Définir un style de document de base nécessite un peu d’expérience, commence par faire des documents indépendants, puis ensuite, crée ton style.

En même temps, l’idée de /inclure un document qui prédéfinit les commandes dont tu as besoin (j’utilise souvent \O pour dire \mathcal{O} lors d’une analyse de complexité par exemple), c’est pas forcément stupide, et c’est facile à mettre en place. D’un autre côté faudra quand même que tu copies ton document « template » dans le dossier où tu vas travailler non ?

Personnellement je me contente de recopier directement le fichier « template » en question (aka je crée un nouveau fichier en me basant sur le préambule d’un fichier précédent). Et c’est pas forcément ça qui fait perdre le plus de temps.

Je pense que dans l’optique d’écrire un cours en « live » en LaTeX, le plus long sera peut-être de recopier les formules. Dans cette optique là des sites de reconnaissance de symboles LaTeX, du genre Detexify LaTeX handwritten symbol recognition sont très bien (ce site reconnait vraiment pas mal de symboles, c’est bien quand on a oublié une commande en particulier :p).

Sinon y a aussi ça qu’est pas mal : handtex.fr/functionnalities.html
En gros c’est le projet de TIPE qu’un pote a fait pendant sa prépa, c’est un p’tit logiciel qui te permet de faire du LaTeX à la tablette graphique en somme :stuck_out_tongue:
Ca mériterait sans doute d’être un peu complété, mais ça marche déjà pas mal je trouve.

Bon, j’ai trois fichiers .sty en exemple.
Le premier : Une liste de raccourcit.
Le deuxième : Celui que l’on m’a donné pour la rédaction d’exercice.
Le troisième : Celui qu’un autre professeur utilise pour ses exercices.

%%%%%%%%%%%%%%%%%
%%% Alphabets %%%
%%%%%%%%%%%%%%%%%

% Raccourcis grecs
\newcommand{\ag}{\alpha}
\newcommand{\bg}{\beta}
\newcommand{\Gg}{\Gamma}
\newcommand{\gag}{\gamma}
\newcommand{\Dg}{\Delta}
\newcommand{\dg}{\delta}
\newcommand{\eg}{\varepsilon}
\newcommand{\zg}{\zeta}
\newcommand{\hg}{\eta}
\newcommand{\Tg}{\Theta}
\newcommand{\tg}{\theta}
\newcommand{\ig}{\iota}
\newcommand{\kg}{\kappa}
\newcommand{\Lg}{\Lambda}
\renewcommand{\lg}{\lambda}
\newcommand{\rg}{\rho}
\newcommand{\Sg}{\Sigma}
\newcommand{\sg}{\sigma}
\newcommand{\Ug}{\Upsilon}
\newcommand{\ug}{\upsilon}
\renewcommand{\phi}{\varphi}
\newcommand{\Og}{\Omega}
\newcommand{\omg}{\omega}

% Raccourcis ensemblistes
\newcommand{\C}{\mathbb{C}}
\newcommand{\D}{\mathbb{D}}
\newcommand{\Hh}{\mathbb{H}}
\newcommand{\K}{\mathbb{K}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\U}{\mathbb{U}}
\newcommand{\Z}{\mathbb{Z}}
\newcommand{\Ss}{\mathfrak{S}}
\newcommand{\Aa}{\mathfrak{A}}

% Raccourcis lettres rondes
\renewcommand{\AA}{\mathcal{A}}
\newcommand{\BB}{\mathcal{B}}
\newcommand{\CC}{\mathcal{C}}
\newcommand{\DD}{\mathcal{D}}
\newcommand{\EE}{\mathcal{E}}
\newcommand{\FF}{\mathcal{F}}
\newcommand{\GG}{\mathcal{G}}
\newcommand{\HH}{\mathcal{H}}
\newcommand{\II}{\mathcal{I}}
\newcommand{\NN}{\mathcal{N}}
\newcommand{\MM}{\mathcal{M}}
\newcommand{\LL}{\mathcal{L}}
\newcommand{\OO}{\mathcal{O}}
\newcommand{\PP}{\mathcal{P}}
\newcommand{\QQ}{\mathcal{Q}}
\newcommand{\RR}{\mathcal{R}}
\renewcommand{\SS}{\mathcal{S}}
\newcommand{\TT}{\mathcal{T}}
\newcommand{\UU}{\mathcal{U}}
\newcommand{\VV}{\mathcal{V}}

% Raccourcis lettres manuscrites
\RequirePackage{mathrsfs}
\newcommand{\ELL}{\mathscr{L}}

% Pour avoir de grandes tildes
\renewcommand{\tilde}{\widetilde}



%%%%%%%%%%%%%%%%%%%%%%
%%% Environnements %%%
%%%%%%%%%%%%%%%%%%%%%%

% Pour avoir de grands tableaux
\newenvironment{disarray}%
 {\everymath{\displaystyle\everymath{}}\array}%
 {\endarray}

% Encadrements
\newenvironment{encadrement}{\begin{disarray}{rcccl}}{\end{disarray}}

% Systemes lineaires
\RequirePackage{array}
\newenvironment{systeme}{\left\{ \! \begin{array}{r @{\,}c @{\,} l @{\;}>{\scriptstyle}l}}{\end{array}\right.}
\newcommand{\ot}{\leftarrow}



%%%%%%%%%%%%%%%
%%% Logique %%%
%%%%%%%%%%%%%%%
% Ensembles
\newcommand{\privede}{\backslash}

% Logique
\newcommand{\tq}{~;~}
\newcommand{\pourtout}{\forall~}
\newcommand{\existe}{\exists~}
\newcommand{\implique}{~\Rightarrow~}
\newcommand{\non}{\textsc{non}~}
\newcommand{\et}{~\textsc{et}~}
\newcommand{\ou}{~\textsc{ou}~}
\newcommand{\equivaut}{~\Leftrightarrow~}

% Arithmetiques
\RequirePackage{stmaryrd}
\newcommand{\entiers}[2]{\llbracket#1,#2\rrbracket}
\newcommand{\signe}[1]{\mathrm{signe}(#1)}
\newcommand{\cl}[1]{\mathrm{cl}(#1)}
\DeclareMathOperator{\val}{val}
\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
\DeclareMathOperator{\pgcd}{pgcd}
\DeclareMathOperator{\ppcm}{ppcm}


\newcommand{\card}{\mathrm{Card}}


%%%%%%%%%%%%%%%
%%% Algebre %%%
%%%%%%%%%%%%%%%

\newcommand{\rel}{\preccurlyeq}

% Calcul
\newcommand{\dsum}{\sum\limits}
\newcommand{\dprod}{\prod\limits}

% Nombres complexes
\renewcommand{\mod}[1]{~[#1]}
\renewcommand{\Re}{\mathrm{Re}}
\renewcommand{\Im}{\mathrm{Im}}
\renewcommand{\bar}{\overline}
\renewcommand{\angle}{\widehat}

% Vecteurs
\newcommand{\vu}{\vect{u}}
\newcommand{\vv}{\vect{v}}
\newcommand{\vw}{\vect{w}}
\newcommand{\vt}{\vect{t}}
\newcommand{\vi}{\vect{i}}
\newcommand{\vj}{\vect{j}}
\newcommand{\vk}{\vect{k}}

% Espaces vectoriels
\newcommand{\vect}{\overrightarrow}
\newcommand{\Gl}{\mathcal{G}\ell}
\DeclareMathOperator{\Id}{Id}
\DeclareMathOperator{\Rg}{Rg}
\DeclareMathOperator{\Ima}{Im}
\DeclareMathOperator{\Ker}{Ker}
\DeclareMathOperator{\Vect}{Vect}
\DeclareMathOperator{\Tr}{Tr}
\DeclareMathOperator{\Res}{Res}
\newcommand{\ps}[2]{\left(#1|#2\right)}
\DeclareMathOperator{\trans}{{}^t\!}

% Polynomes
\renewcommand{\degre}{\mathrm{deg}}

%%%%%%%%%%%%%%%
%%% Analyse %%%
%%%%%%%%%%%%%%%

% Definition fonctions
\newcommand{\fct}[5]{
\begin{array}[t]{l@{\,}c@{\,}c@{\,}l}
  #1\,:\,&  #2 & \to     & #3 \\
         & #4 & \mapsto & #5
 \end{array}
}


\newcommand{\dlim}{\lim\limits}
\newcommand{\dsup}{\sup\limits}
\newcommand{\dinf}{\inf\limits}
\newcommand{\dmax}{\max\limits}
\newcommand{\dmin}{\min\limits}

\newcommand{\vabs}[1]{\left| #1 \right|}

% Les fonctions usuelles
\DeclareMathOperator{\argch}{argch}
\DeclareMathOperator{\argsh}{argsh}
\DeclareMathOperator{\argth}{argth}
\DeclareMathOperator{\cotan}{cotan}
\DeclareMathOperator{\arccotan}{acotan}

% Integration
\newcommand{\dint}{\displaystyle \int}
\newcommand{\diint}{\displaystyle \iint}
\newcommand{\dt}{\:dt}
\newcommand{\dx}{\:dx}
\newcommand{\dy}{\:dy}
\newcommand{\du}{\:du}
\newcommand{\dv}{\:dv}

% Derivation
\newcommand{\difx}[1]{\frac{\partial #1}{\partial x_1}}
\newcommand{\dify}[1]{\frac{\partial #1}{\partial x_2}}
\newcommand{\difxy}[1]{\frac{\partial^2 #1}{\partial x_1 \partial x_2}}
\newcommand{\difyx}[1]{\frac{\partial^2 #1}{\partial x_2 \partial x_1}}
\newcommand{\difxx}[1]{\frac{\partial^2 #1}{\partial x_1^2}}
\newcommand{\difyy}[1]{\frac{\partial^2 #1}{\partial x_2^2}}

%%%%%%%%%%%%%%%%%%%%
%%% Probabilites %%%
%%%%%%%%%%%%%%%%%%%%

% Pour faire des indicatrices
\RequirePackage{bbm}
\newcommand{\indicatrice}[1]{\ensuremath{\mathbbm{1}_{#1}}}
\newcommand{\comp}[1]{{}^c~#1}

% Probabilites
\renewcommand{\P}{\mathbb{P}}
\newcommand{\E}{\mathbb{E}}

%%%%%%%%%%%%%%%%%%%%
%%% Informatique %%%
%%%%%%%%%%%%%%%%%%%%
\newcommand{\commande}[1]{{\normalfont\tt #1}\index{{\tt #1}}}
\newcommand{\code}[1]{{\normalfont\tt #1}}
\RequirePackage{xspace}
\newcommand{\Maple}{{\sf Maple}\xspace}
\def\fileversion{0.1}
\def\filedate{15 avril 2010}
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\ProvidesPackage{ProjetExomaths}[2010/05/10]

% Paquets de langue (francais iso-8859-15
\sloppy
\RequirePackage[latin1]{inputenc}
\RequirePackage[french]{babel}

% Mise en page
\addtolength{\voffset}{-1cm}
\addtolength{\textheight}{2cm}
\addtolength{\hoffset}{-1.5cm}
\addtolength{\textwidth}{2 cm}
\newlength\apresentete
\setlength{\apresentete}{1cm}

\usepackage{indentfirst}

\RequirePackage{multicol}

% Paquets ams
\RequirePackage{amsmath, amsfonts, amsthm, amssymb}

\RequirePackage{float}

% Paquets pou inserer des graphiques
\RequirePackage{graphics}
\RequirePackage{graphicx}
\RequirePackage{color}

% Paquets pour les tableaux de signe
\usepackage{variations}


%===== Definition de l'entete du document ====%
% Definition des nouvelles commandes
\def\niveau#1{\def\@niveau{#1}}
\niveau{}
\def\rubrique#1{\def\@rubrique{#1}}
\rubrique{}
\def\difficulte#1{\def\@difficulte{#1}}
\rubrique{}
\def\duree#1{\def\@duree{#1}}
\rubrique{}
% Affichage de l'entete
\newcommand\entete{
\centerline{\Large \@title}
\begin{flushright}
\footnotesize \texttt{\@author}
\end{flushright}
\noindent {\bf \small Niveau~:~}\textsc{\small\@niveau}
%
\\ \smallskip \\
\noindent {\bf\small Difficulté~:~}{\small \@difficulte}
\\
\noindent {\bf\small Durée~:~}{\small \@duree}
%
\\ \smallskip \\
%
\noindent{\bf \small Rubrique(s)~:~}\\ {\small\@rubrique}
\begin{center}
 \rule{5cm}{1mm}
\end{center}

}


%===== L'environnement historique ====%
\newenvironment{histoire}{%
\small
\noindent\textbf{La petite histoire...}%
}{\vskip0.2cm}


%===== L'environnement exercice ====%
% Creation des compteurs de questions et d'exercices
\newcounter{exo}
\setcounter{exo}{1}
\newcounter{cqu}
\setcounter{cqu}{0}
\newcounter{csqu}
\setcounter{csqu}{0}
% Creation de l'affichage des numeros de questions
\newcommand{\qu}{%
\refstepcounter{cqu}%
\setcounter{csqu}{0}%
\par \noindent{\bf\small \arabic{cqu})~}%
}

\newcommand{\squ}{%
\refstepcounter{csqu}%
\par \noindent \hskip1em{\bf\small \alph{csqu})~}%
}

\newcommand{\Qu}{%
\refstepcounter{cqu}%
\setcounter{csqu}{1}%
\par \noindent{\bf\small \arabic{cqu}.\alph{csqu})~}%
}

\newcommand{\Squ}{%
\refstepcounter{csqu}%
\par \noindent{\bf\small \arabic{cqu}.\alph{csqu})~}%
}

% Definition de l'environnement d'exercice
\newenvironment{Exo}[1][{}]%
{%
\setcounter{cqu}{0}% met le compteur question a zero
\setcounter{csqu}{0}% met le compteur question a zero
\noindent\textbf{Exercice~\arabic{exo}}%
\if\relax#1\relax \else {\bf ~({#1}) }\ignorespaces\fi% place le nom de l'exercice
~:~%
}
{\vskip0.5cm%
\refstepcounter{exo}%
}


%===== L'environnement indications =====%
\newenvironment{IndicCom}%
{%
\small
\noindent\textbf{Indications et Commentaires}~:~%
}
{\vskip0.5cm%
}


%===== L'environnement solutions =====%
\newenvironment{Corr}%
{%
\setcounter{cqu}{0}% met le compteur question a zero
\setcounter{csqu}{0}% met le compteur question a zero
\small
\noindent\textbf{Corrections.}%
}
{\vskip0.5cm%
}




%===== Raccourcis claviers ===%
% Lettres grasses
\def\R{\mathbb{R}}
\def\Q{\mathbb{Q}}
\def\Z{\mathbb{Z}}
\def\N{\mathbb{N}}
\def\C{\mathbb{C}}
\def\Q{\mathbb{Q}}
\def\E{\mathbb{E}}
\def\P{\mathbb{P}}

% Flèches
\def\to{\rightarrow}
\def\To{\longrightarrow}
\def\vec{\overrightarrow}
\def\t{\textrm}
\def\w{\widetilde}
\def\ind{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}

\newcommand{\be} {\begin{equation}}
\newcommand{\ee} {\end{equation}}
\newcommand{\bea} {\begin{eqnarray}}
\newcommand{\eea} {\end{eqnarray}}
\newcommand{\Bea} {\begin{eqnarray*}}
\newcommand{\Eea} {\end{eqnarray*}}
\newcommand{\ba} {\begin{array}}
\newcommand{\ea} {\end{array}}

\newtheorem{Thm}{Théor\`eme}
\newtheorem{Lem}[Thm]{Lemme}
\newtheorem{Prop}[Thm]{Proposition}
\newtheorem{Pte}[Thm]{Propri\'et\'e}
\newtheorem{Cor}[Thm]{Corollaire}
\newtheorem{Exp}[Thm]{Exemple}
\newtheorem{Def}[Thm]{D\'efinition}
\newtheorem{Rque}[Thm]{Remarque}
\def\fileversion{0.4}
\def\filedate{21 juillet 2010}
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\ProvidesPackage{exercices}[2010/07/21]

%%%%%%%%%%%%%%%
%%% Options %%%
%%%%%%%%%%%%%%%
%== enonce / noenonce ==%
\newif\ifenonce \enoncetrue% affiche les enonces (oui par defaut)
\DeclareOption{enonce}{\enoncetrue}%
\DeclareOption{noenonce}{\enoncefalse}%

%== correction / nocorrection ==%
\newif\ifcorrection \correctionfalse% affiche les solutions (non par defaut)
\DeclareOption{correction}{\correctiontrue}%
\DeclareOption{nocorrection}{\correctionfalse}%

%== bareme / nobareme ==%
\newif\ifbareme \baremefalse% affiche le bareme (non par defaut)
\DeclareOption{bareme}{\baremetrue}%
\DeclareOption{nobareme}{\baremefalse}%

\ProcessOptions% Validation des options (?)




%%%%%%%%%%%%%%%%%%%%%%
%%% Paquets requis %%%
%%%%%%%%%%%%%%%%%%%%%%
%== Encodage ==%
\RequirePackage[latin1]{inputenc}% texte en iso
\RequirePackage[T1]{fontenc}% encodage des polices recent
\RequirePackage[frenchb]{babel}% francais (accents,...)

%== Polices ==%
\sloppy% cesures en fin de ligne
\RequirePackage{frcursive}% ecriture cursive
\RequirePackage{textcomp}% ° de numero
\RequirePackage{pifont}% petite main
\RequirePackage{fge}% fleche

%== AMS ==%
\RequirePackage{amsfonts,amssymb,amsthm,amsmath}

%== Graphiques ==%
\RequirePackage{graphicx,multicol,graphics,color}
\raggedcolumns % Colonnes non justifiees verticalement

%== Presentation ==%
\RequirePackage{fancyhdr,lastpage}



%%%%%%%%%%%%%%%%%%%%
%%% Mise en page %%%
%%%%%%%%%%%%%%%%%%%%
%== Gestion des marges ==%
\addtolength{\textwidth}{14em}
\addtolength{\hoffset}{-7em}
\addtolength{\textheight}{10\baselineskip}
\addtolength{\voffset}{-7\baselineskip}
\setlength{\parindent}{0pt}
\renewcommand{\baselinestretch}{1.2}

%== Nouveaux champs ==%
\def\etablissement#1{\def\@etablissement{#1}}% etablissement
\etablissement{}

\def\niveau#1{\def\@niveau{#1}}% niveau
\niveau{}

\def\module#1{\def\@module{#1}}% module
\module{}

\def\titre#1{\def\@titre{#1}}% intitule du document
\titre{}

\def\soustitre#1{\def\@soustitre{#1}}% sous-titre
\soustitre{}

\def\deadline#1{\def\@deadline{#1}}% deadline
\deadline{}

\def\date#1{\def\@date{#1}}% date
\date{}

%== Nouvelles polices ==%
\newcommand{\police}{\usefont{T1}{ptm}{b}{n}}
\newcommand{\classique}{$\heartsuit$}% coeur
\newcommand{\entrain}{\ding{45}}% petite main
\newcommand{\astuce}{{\rotatebox{20}{$\fgerightarrow$}}}% fleche sioux

%== Entetes et pieds de page ==%
\pagestyle{fancy}
\rhead{}
\chead{}
\lhead{}
\lfoot{}
\cfoot{{\police \thepage/\pageref{LastPage}}}
\rfoot{\begin{cursive}\scriptsize\@author\end{cursive}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

%== Entete ==%
\newcommand\entete{
\noindent
\begin{minipage}[t]{0.2\textwidth}
  \noindent {\textsc{\@etablissement}} \hfill 

  \@module
\end{minipage} \hfill
\begin{minipage}[t]{0.5\textwidth}
  \begin{center}
    \Large{\ifcorrection Correction - \else\relax\fi \@titre}

    \small{\@soustitre}

    \small{\@deadline}
  \end{center}
\end{minipage} \hfill
\begin{minipage}[t]{0.2\textwidth}
  \begin{flushright}
    {\bf \@niveau} \hfill

    \@date
  \end{flushright}
\end{minipage}

\smallskip
\begin{center}
  $\ast \, \ast\, \ast$
\end{center}
}

%== Sections ==%
\def\section{\@startsection {section}%
  {1}%
  {\z@}%
  {-0.3cm \@plus -0.1cm \@minus -0.2cm}%
  {0.1cm \@plus-0.2cm \@minus -0.1cm}%
  {\bfseries}
}% affichage des sections

\renewcommand\@seccntformat[1]{\@nameuse{the#1}.~}% numerotation des sections

\def\subsection{\@startsection {subsection}{2}{\z@}{1ex}{1ex}{\normalsize\bfseries}}
\newcommand{\partie}[1]{\vskip3ex \centerline{\police #1} \vskip1.5ex}% sous-partie dans probleme



%%%%%%%%%%%%%%%%%
%%% Compteurs %%%
%%%%%%%%%%%%%%%%%
\newcounter{ex}
\newcounter{cqu}[ex]
\newcounter{csqu}[cqu]


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Macros pour environnements %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%== Colonnes %==
\newenvironment{colonnes}[2][{}]{
\if \relax#1\relax \else % en presence d un argument ne trace pas de separation
 \setlength{\columnseprule}{0.5pt} % sinon trace
\fi
\vspace{-1.25em}
\begin{multicols}{#2} % utilise l argument pour determiner le nombre de colonnes
}
{
\end{multicols}
\vspace{-1.25em}
}

%== Questions ==%
% qu : premier niveau de question, numerotation arabe
\newcommand{\qu}[1][{}]{
\stepcounter{cqu}%
\par
  \ifbareme
    \if\relax#1\relax%
    \else ${}$\hskip-5em {\normalfont\small /#1} \vskip-\baselineskip%
    \fi%
  \else \relax
  \fi%
\noindent{\police \arabic{cqu}.}
}

% squ : deuxieme niveau de question, numerotation lettres
\newcommand{\squ}[1][{}]{%
\stepcounter{csqu}%
\par%
\ifbareme
    \if\relax#1\relax%
    \else ${}$\hskip-5em {\normalfont\small /#1} \vskip-\baselineskip%
    \fi%
  \else \relax
  \fi%
\noindent\hskip1em{\police \alph{csqu})}
}

% Qu : premier niveau de question, cqu.csqu
\newcommand{\Qu}[1][{}]{
\stepcounter{cqu}%
\setcounter{csqu}{1}%
\par
  \ifbareme
    \if\relax#1\relax%
    \else ${}$\hskip-5em {\normalfont\small /#1} \vskip-\baselineskip%
    \fi%
  \else \relax
  \fi%
\noindent{\police \arabic{cqu}~.~\alph{csqu})}
}

% Squ : deuxieme niveau de question, cqu.csqu (n incremente que csqu)
\newcommand{\Squ}[1][{}]{%
\stepcounter{csqu}%
\par%
\ifbareme
    \if\relax#1\relax%
    \else ${}$\hskip-5em {\normalfont\small /#1} \vskip-\baselineskip%
    \fi%
  \else \relax
  \fi%
\noindent\hskip1em{\police \arabic{cqu}~.~\alph{csqu})}
}


%== Bareme ==%
\newcommand{\bareme}[1]{%
\ifbareme%
    \if\relax#1\relax%
    \else ${}$\\\vskip-5.5ex${}$\hskip-5em {\bf\small /#1}\\ \noindent\ignorespaces%
    \fi%
\else \relax%
\fi%
}%


%%%%%%%%%%%%%%%%%%%%%%
%%% Environnements %%%
%%%%%%%%%%%%%%%%%%%%%%

%== Exercice ==%
\newenvironment{TheExercice}[1]%
{%
\stepcounter{ex}%
\par
\vskip3ex%
\noindent{\police Exercice~\arabic{ex}\@addpunct{.} }\ignorespaces % ecrit exercice en gras suivi du numero et d'un point
\if\relax#1\relax \else {\police ({#1}) }\ignorespaces\fi% place le nom de l'exercice en gras
}
{%
}

\newenvironment{exercice}[1][{}]% on definit l'argument par defaut
  {%
    \ifenonce% si l'affichage des solutions est active
      \par
      \begin{TheExercice}{#1}%
    \else
      \setbox\z@\vbox% on definit une boite vide
      \bgroup
    \fi
  }{%
    \ifenonce
      \end{TheExercice}%
    \else
      \egroup
    \fi
  }%


%== Probleme numerote ==%
\newenvironment{TheProbleme}[1]%
{%
\setcounter{cqu}{0}% met le compteur question a zero
\setcounter{csqu}{0}% met le compteur question a zero
\par
\vskip3ex%
\noindent{\police Probl\`eme\@addpunct{.} }\ignorespaces % ecrit exercice en gras suivi du numero et d'un point
\if\relax#1\relax \else {\police ({#1}) }\ignorespaces\fi% place le nom de l'exercice en gras
}
{%
}

\newenvironment{probleme}[1][{}]% on definit l'argument par defaut
  {%
    \ifenonce% si l'affichage des solutions est active
      \par
      \begin{TheProbleme}{#1}%
    \else
      \setbox\z@\vbox% on definit une boite vide
      \bgroup
    \fi
  }{%
    \ifenonce
      \end{TheProbleme}%
    \else
      \egroup
    \fi
  }%

%== Probleme non numerote ==%
\newenvironment{TheProbleme*}%
{%
\setcounter{cqu}{0}% met le compteur question a zero
\setcounter{csqu}{0}% met le compteur question a zero
\par
}
{%
}

\newenvironment{probleme*}
 {%
    \ifenonce% si l'affichage des solutions est active
      \par
      \begin{TheProbleme*}%
    \else
      \setbox\z@\vbox% on definit une boite vide
      \bgroup
    \fi
  }{%
    \ifenonce
      \end{TheProbleme*}%
    \else
      \egroup
    \fi
  }%

%== Solution ==%
\newenvironment{TheSolution}[1]% prend un argument
{%
\noindent{\police Solution\@addpunct{.} }%
\if\relax#1\relax {}\else {\bf (#1) }\fi%
\ignorespaces
}{%
\qed% met un carre a la fin de la solution
}

\newenvironment{solution}[1][{}]% on definit l'argument par defaut
  {%
  \setcounter{cqu}{0}% met le compteur question a zero
  \setcounter{csqu}{0}% met le compteur question a zero
    \ifcorrection% si l'affichage des solutions est active
      \par
      \begin{TheSolution}{#1}%
    \else
      \setbox\z@\vbox% on definit une boite vide
      \bgroup
    \fi
  }{%
    \ifcorrection
      \end{TheSolution}%
    \else
      \egroup
    \fi
  }%

Bon le premier, je l’ai presque entièrement compris.
Il renomme ou crée plein de raccourcit.
Seul la partie environnement m’est un peu moins accessible.

Ce genre de définition, c’est une partie de ce que je voudrais faire, cela me permettra d’avoir mes propres raccourcis afin de faciliter la rédaction.
Par contre, il faudra que je trouve un endroit où est marqué tous les commandes qui existent sur Latex (pour récupérer celles qui m’intéressent).

Pour le deuxième, c’est plus compliqué. Au début il définit la mise en page et les packages.
Par contre je ne saurais pas très bien dire ce que fais chaque consigne.
Ensuite c’est le bordel, je comprends pas grand chose.
Puis ça finit sur la création de raccourcit, c’est juste original car il y a \def et \newtheorem au lieu de \newcommand.

Pour le troisième, c’est pire. Au début y a la mise en page puis après je ne pige plus rien.

Si éventuellement quelqu’un pouvait m’éclairer.

Moi j’dis tu cherches à comprendre des choses qui ne te serviront sans doute jamais, mais bon c’est toi qui voit. En tout cas :

Par contre, il faudra que je trouve un endroit où est marqué tous les commandes qui existent sur Latex (pour récupérer celles qui m’intéressent).
Il y a autant de commandes que de package disponibles sur le net … Autant dire une bonne flopée. T’as bien The Comprehensive LaTeX Symbol List sur CTAN qui est assez complet. Pour le reste, Google ou CTAN suffisent généralement à savoir à quoi correspond telle ou telle commande …
Puis ça finit sur la création de raccourcit, c’est juste original car il y a \def et \newtheorem au lieu de \newcommand.
\def c’est assez sale il me semble. C’est comme un \newcommand ou un \renewcommand, mais qui ne vérifie pas si une telle commande a déjà été définie ou non. Bref du coup tu peux écraser des trucs sans le vouloir, etc. Donc bon, en somme \def c’est pour les gens qui savent ce qu’ils font.

Enfin dernière chose, plutôt que d’essayer d’apprendre les recoins sombres de LaTeX, moi j’dis tu ferais mieux d’apprendre des trucs plus constructifs, comme Tikz, pour faire des jolies figures :smiley: (cela dit en passant c’est très bien Tikz hein, si jamais tu connais pas va y jeter un oeil ^^).

\def c’est du TeX. Ça marche dans un document LaTeX, mais mieux vaut utiliser \newcommand.

Sinon, avant, quand je maîtrisais pas trop LaTeX, je faisais toujours un copier-coller d’un préambule que j’avais à la base emprunté à mon père. Maintenant, j’essaie de ne mettre que le minimum nécessaire dans chaque document (quand j’ai besoin de packages et commandes supplémentaires en cours de document, je les ajoute à ce moment seulement). Ça évite les risques d’incompatibilités, ça évite d’avoir des lignes et des lignes qu’on ne comprend pas dans le préambule, ça évite de mauvaises surprises et ça aide à bien comprendre de quel package vient telle ou telle commande. Mais, ça nécessite d’avoir un peu l’habitude de LaTeX pour que ça ne prenne pas trop de temps.

TLN a écrit:

Moi j’dis tu cherches à comprendre des choses qui ne te serviront sans doute jamais, mais bon c’est toi qui voit.
…
Enfin dernière chose, plutôt que d’essayer d’apprendre les recoins sombres de LaTeX, moi j’dis tu ferais mieux d’apprendre des trucs plus constructifs, comme Tikz, pour faire des jolies figures :smiley: (cela dit en passant c’est très bien Tikz hein, si jamais tu connais pas va y jeter un oeil ^^).
Oui, j’me doute bien que c’est pas la meilleur chose à faire.

Grosso modo je comptais juste faire un petit fichier (ou alors une entête que je copie/colle) de la forme :
Consigne de mise en page.
Package et autres machins à récupérer.
Nouvelles commandes.

Et donc, c’est pour cela que je posais des questions, pour ne rien oublier et essayer de gagner du temps.
D’autant que c’est surtout pour la partie package que j’ai des lacunes et que je voulais de l’aide.
Et je me posais quelques questions supplémentaires étant donné qu’ils déclaraient d’autres choses.
Non pas que je veuille tout comprendre, mais je voulais être sur d’avoir les environnements, les tableaux, les images, etc…