\documentclass{scrartcl}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[francais]{babel}
\usepackage{hyperref}

\title{TP \LaTeX{} EDITE\\
Bibliographie, commandes, packages}

\author{Pierre Senellart}
\date{16 février 2010}

\begin{document}

\maketitle

\section{Bibliographie}
Reproduire la bibliographie suivante à l'aide de
Bib\TeX~\cite{btxdoc}. On pourra télécharger le style bibliographique
français \texttt{alpha-fr.bst} (non installé par défaut dans les
distributions de \LaTeX) depuis
\url{http://www.ctan.org/tex-archive/biblio/bibtex/contrib/bib-fr/}

\nocite{*}
\bibliographystyle{alpha-fr}
\bibliography{tp}

\section{Installation}

Installer les packages beamer et tikz, trouvables sur le Web, dans leur
dernière version, dans votre répertoire \verb|$HOME/texmf/|. Tester
l'installation en tentant de compiler un fichier minimal:
\begin{verbatim}
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\frame{Hello}
\end{document}
\end{verbatim}

\section{Commandes et packages}

\begin{itemize}

\item Créer un fichier \texttt{macros.sty} avec une structure minimale de
package. Créer un fichier compagnon \texttt{document.tex} qui inclut ce
package.

\item Définir dans \texttt{macros.sty}
une commande \LaTeX{} \verb|\set| à un argument. Il faut que la commande
\verb|$\set{1\dots n}$|
produise $\{\,1\dots n\,\}$.

\item Modifier \verb|\set| pour qu'elle prenne un argument facultatif. Il
faut que la commande \verb|$\set[f(x)\neq 0]{x\in X}$| produise $\{\,x\in X\mid
f(x)\neq 0\,\}$. Si l'argument optionnel n'est pas présent, rien ne doit
changer. Pour tester cela, on pourra utiliser la commande \LaTeX{}
\verb|\@ifempty|: \verb|\@ifempty{arg}{toto}{titi}| affiche \verb|toto|
si \verb|arg| est vide, \verb|titi| sinon. Cette commande nécessite un
\verb|\usepackage{amsmath}|.

\item On aimerait bien que l'argument optionnel soit après l'argument
obligatoire et non avant.
Ce n'est pas possible en \LaTeX{}, mais en \TeX{}, si:
\begin{verbatim}
\def\set#1{\@ifnextchar[{\setinternal#1}{\left\{#1\right\}}}
\def\setinternal#1[#2]{\left\{\,#1 \mid #2\,\right\}}
\end{verbatim}

Étudier cette définition, comprendre et tester.

\end{itemize}

\section{Classe personnelle pour du courrier}

Étudier la documentation du package KomaSript (\verb|texdoc scrguien|) se
rapportant à la classe de documents scrlttr2. Construire un exemple
minimal de lettres avec vos coordonnées. À partir de cet exemple,
construire une classe de documents personnelle s'appuyant sur scrlttr2
permettant de rédiger des courriers le plus facilement possible, sans
avoir besoin d'écrire dans chaque document vos coordonnées.

S'il vous reste du temps, prévoir une option pour choisir entre anglais
et français, entre adresse personnelle et professionnelle, etc.

\end{document}

