From 6cd093ff5360c4723805a6d64d34202fc44bcfb7 Mon Sep 17 00:00:00 2001 From: Aurelien Pascal Date: Thu, 28 Dec 2017 20:44:33 +0100 Subject: [PATCH] macros et chamanisme --- README.md | 2 +- latex-guide.tex | 3 +++ parts/avance-master.tex | 28 +++++++++++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f405bd8..06c6987 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Code : * [/] SIUnitx : le paquet du physicien * [/] Des références d'articles avec BibTeX * [V] Gérer un gros document en le découpant en plusieurs parties - * [...] Un soupçon de programmation LaTeX + * [V] Un soupçon de programmation LaTeX 4. Des graphiques vectoriels avec le duo PGF/TIKZ * [/] Introduction * [/] Des figures simples diff --git a/latex-guide.tex b/latex-guide.tex index 516aec8..c767ce0 100644 --- a/latex-guide.tex +++ b/latex-guide.tex @@ -45,6 +45,8 @@ \rhead{2016} %-----DOCUMENT----- +\includeonly{parts/intro-master, parts/survie-master, parts/avance-master} + \begin{document} \pagenumbering{gobble} \let\orilabel\label %sauvegarde la commande label dans orilabel pour la restaurer dans showexpl @@ -114,6 +116,7 @@ Ce document est mis à disposition selon les termes de la Licence Creative Commo \newpage \pagenumbering{arabic} + % Partie I : Introduction \include{parts/intro-master} diff --git a/parts/avance-master.tex b/parts/avance-master.tex index 0dff062..4490e50 100644 --- a/parts/avance-master.tex +++ b/parts/avance-master.tex @@ -69,6 +69,8 @@ Cette partie présente des techniques permettant un réglage plus fin des tablea \subsection{Aérer son tableau} +\label{subsec:aerertab} + Si votre tableau contient des données qui prennent une place verticale conséquente, comme des fractions, vous pourrez avoir envie de l'aérer pour en augmenter la lisibilité. La hauteur des lignes se modifie à l'aide de \verb=\renewcommand{\arraystretch}{nouvelle valeur}=.\\ Cette modification étant une redéfinition de l'option globale \verb=\arraystretch=, elle s'appliquera à tous les tableaux qui la suivront. Si vous voulez revenir à un tableau normal, il faudra réutiliser la commande avec la valeur par défaut qui est $1.0$.\\ Voici un exemple : @@ -710,8 +712,10 @@ Dans cette section nous allons donc voir comment créer des commandes et des env \subsection{Créer ses macros : la syntaxe} +\label{subsec:macros} + Pour créer une commande il faut utiliser la syntaxe suivante :\\ -\verb|\newcommand{\}[]{}|\\ +\verb|\newcommand{\}[]{}|\footnote{vous rencontrerez parfois la commande \verb=\def=, qui a la même utilité. Néanmoins son usage est déconseillée, \verb=\def= est une commande \TeX{} primitive qui ne possède pas les sécurités introduites par \LaTeX{} avec \verb=\newcommand= }\\ Pour comprendre cette syntaxe voyons quelques exemples simples. Le cas le plus simple est celui d'une commande sans arguments, où vous ne faites que créer un \ {alias} : @@ -730,6 +734,8 @@ Maintenant considérons l'exemple d'une commande avec deux arguments. L'appel au \alimentation{fruits}{1.5} \end{LTXexample} +Une petite remarque s'impose : certains caractères ne sont pas autorisés par \LaTeX{} dans les noms de commande, comme par exemple l'arobase @. Nous expliquerons pourquoi au \ref{subsec:atletter}. + \subsection{Le cas des mathématiques : l'exemple de la notation \textit{braket} de Dirac} \label{subsubsec:macrosdirac} @@ -761,7 +767,27 @@ Il reste à définir définir le \textit{produit scalaire hermitien} et les \tex \psh{\psi}{\phi} \\ \mean{A} \end{LTXexample} +\subsection{Modifier une macro existante} + +Le principe est le même que pour la création de commandes (voir \ref{subsec:macros}), mais la syntaxe à utiliser est :\\ +\verb|\renewcommand{\}[]{}| + +Nous avons déjà rencontré plusieurs fois cette technique au cours de ce document, voir \ref{subsec:numcompteur} et \ref{subsec:aerertab} pour des exemples. + +\subsection{Modifier des macros protégées} + +\label{subsec:atletter} + +Certaines macros internes de \LaTeX{}\footnote{ainsi que certaines macros définies dans des extensions} sont protégées pour éviter à l'utilisateur non avertit de les modifier.\\ +N'utilisez donc pas ce qui va être expliqué dans cette section avant d'avoir atteint le niveau de maîtrise chaman avancé. + +Les commandes protégées se reconnaissent facilement : elles utilisent le caractère arobase @. Nous avons expliqué au \ref{subsec:macros} que le caractère @ est interdit dans les noms de macros, ce n'est donc pas tout à fait vrai : seul l'utilisateur n'a pas le droit d'utiliser ce caractère, et il peut quand même l'utiliser à condition d'employer deux commandes assez particulières : \verb=\makeatletter= et \verb=\makeatother=\footnote{a titre culturel : ces commandes modifient le \textit{catcode} (ou code de catégorie) du caractère @}. +Pour modifier une commande protégée il faut donc utiliser le schéma suivant : \begin{enumerate} +\item rendre la caractère @ accessibles aux noms de macros avec \verb=\makeatletter= +\item modifier la commande désirée +\item verrouiller à nouveau le caractère @ avec \verb=\makeatother= +\end{enumerate} %%Ecrire de la MQ %\newcommand{\ket}[1]{\ensuremath{|#1\rangle}\xspace} %\ket{n_i}. \hat{} pour avoir un opérateur -- GitLab