\documentclass{article}

% PACKAGE

\usepackage[utf8]{inputenc}

\usepackage{comment}
  \includecomment{rapport}
  \includecomment{article}
  \includecomment{brouillon}

\usepackage{fancyvrb}
\usepackage{listings}
\usepackage{enumerate}

% MACROS

\input{macros}

 % TITRE
 
\title{Magistère : \OLD{démo en directe de l'usage de \LaTeX} \MOD{utiliser \LaTeX\\démo en directe et bonne pratique}}
\author{Cyril Labbé, Michaël Périn}
\date{March 2014}

\begin{document}

\maketitle

\tableofcontents

\clearpage

\section{Présentation de \LaTeX}

\OLD{Cyril, je vois ton projet partagé sous \textsc{sharelatex} !}
Il faut qu'on prépare une présentation de {\LaTeX} pour le 17 mars.

\MARG{Cyril: C'est fait !}

\section{Les packages}

\subsection{Pour toute demande exotique, adressez vous à votre tuteur}

\subsection{Quelques packages utiles}

\subsubsection{pour écrire du code incluant du \LaTeX: \texttt{fancyvrb} ou \texttt{listings}}

\begin{code}[label={\sc\footnotesize code caml produit avec fancyvrb}]
type 'a \Type{recfun} = Fix of ('a recfun -> 'a) ;;
let (out: 'a recfun -> ('a recfun -> 'a)) = function (Fix f) -> f ;;
let y = fun f -> 
  (fun x a -> f (out x x) a) 
     (Fix (fun x a -> f (out x x) a)) 
;;
\end{code}

\paragraph{Deux exemples produits avec \textsf{listings}}

\camlMode % défini dans macros.tex
\begin{enumerate}[{\it(i)}]
\item 
Une ligne de code :
\lstinline|let (id: 't -> 't) = fun x -> x ;;|

\item
Le Listing~\ref{ref-code-2} que \LaTeX place où il veut/peut.
\end{enumerate}

\begin{lstlisting}[caption={\sc\footnotesize figure : code caml produit avec listings}, label={ref-code-2}, float]
type 'a recfun = Fix of ('a recfun -> 'a) ;;
let (out: 'a recfun -> ('a recfun -> 'a)) = function (Fix f) -> f ;;
let y = fun f -> 
  (fun x a -> f (out x x) a) 
     (Fix (fun x a -> f (out x x) a)) 
;;
\end{lstlisting}


\subsubsection{pour sélectionner des parties et en mettre d'autres en commentaire: le package \texttt{comment}}

\begin{comment}
COMMENTAIRE
\end{comment}

\begin{enumerate}
\begin{rapport}
\item \textcolor{red}{uniquement dans le rapport} en jouant sur les options 
\verb|\exludecomment{rapport}|
\vs
\verb|\includecomment{rapport}|
\end{rapport}

\begin{article}
\item \textcolor{green}{uniquement dans l'article} en jouant sur les options 
\verb|\exludecomment{article}|
\vs
\verb|\includecomment{article}|
\end{article}

\begin{brouillon}
\item \textcolor{blue}{uniquement dans le brouillon} en jouant sur les options 
\verb|\exludecomment{brouillon}| 
\vs
\verb|\includecomment{brouillon}|
\end{brouillon}
\end{enumerate}


\section{Les macros}

\begin{quotation}
Vous ne savez quel symbole choisir pour votre opérateur ?

Définissez une macro: \verb|\newcommand\op{\oplus}| et utilisez \verb|\op| pour écrire vos formules.
\begin{Math}
A \op (B \op C) = (A \op B) \op C
\\
A \op A = A
\end{Math}

Il sera ensuite facile de changer le symbole partout dans le document en modifiant seulement la macros \verb|op|.
\end{quotation}

\section*{Bonnes pratiques}

Les utilisateurs de LaTeX ont tendance à adopter les conventions suivantes :
\begin{itemize}
\item le fichier principal est nommé \texttt{main.tex}
\item pour faciliter le travail à plusieurs sans écraser les modifications des autres, on crée un fichier par section : 
    \texttt{abstract.tex, introduction.tex, ..., conclusion.tex}
\item les macros sont rangées dans le fichier \texttt{macros.tex}
\item Les macros sans argument commencent par une minuscule
\item Les macros avec argument commencent par une Majuscule
\end{itemize}


\section{Ne perdez pas de temps à programmer en \LaTeX}

\section{Il existe déjà un package pour ce dont vous avez besoin}

\section{Dernier conseil : ne luttez pas contre \LaTeX}

\clearpage\appendix

\section{Les sources \LaTeX de ce document}

\subsection{le fichier \texttt{macros.tex}}

\fvset{frame=single,numbers=left,numbersep=3pt}
\VerbatimInput{macros.tex}

\subsection{le fichier \texttt{main.tex}}

\fvset{frame=single,numbers=left,numbersep=3pt}
\VerbatimInput{main.tex}

\end{document}
