Les macros se trouvent en général dans des fichiers avec une extension .sty (exemple graphics.sty). Pour pouvoir utiliser ces macros, il faut que LaTeX puisse les retrouver.
Sous Linux
Il y a (au moins) quatre méthodes.
texhash(en tant que root) pour mettre à jour la base de données des packages.
cd /usr/share/texmf/tex/latex
ln -s macros /home/vous/macros/tex
texhash
texhash(en tant que root) pour mettre à jour la base de données des packages.
La dernière méthode est ma préférée. Elle permet de modifier simplement vos fichiers de macros sans avoir à passer en root à chaque fois.
Il ne reste plus ensuite qu'à ajouter
\usepackage{machin.sty}
dans le préambule de votre document (entre \documentclass[...]{...} et \begin{document}).
Remarque : pour ceux qui choisissent la seconde méthode, sachez que si vous vous logguez à l'aide de xdm (ou kdm, etc. : un login graphique après démarrage de Linux), le fichier .bash_profile ne sera pas lu. Placez plutôt vos instructions dans le fichier .bashrc (toujours placé dans votre dossier personnel).
Sous Dos / Windows
La procédure est analogue : placer le fichier de macros soit dans \texmf\tex\latex\macros, soit dans \localtexmf\tex\latex\macros puis exécuter
mktexlsr
Pour définir une nouvelle commande en LaTeX :
\newcommand{\macommande}[nbparam]{instructions}
Il y a vérification que la macro \macommande n'existe pas encore. Dans le doute, vous pouvez utiliser \providecommand.
Pour définir une nouvelle commande en TeX :
\def\macommande#nbparam{instructions}
L'écriture de macros en (La)TeX est très complexe, une alternative est d'utiliser Python.
Ainsi, par exemple, on peut aisément définir une commande qui retourne une chaîne de caractères :
\newcommand{\retourne}[1]{\py{"#1"[::-1]}}
\retourne{'Bonjour tout le monde !'}
Pour en savoir plus, consultez notre page sur Pythontex.
Nous avons crée des commandes spécifiques pour les profs de maths de lycée. Pour en savoir plus.
Les macros suivantes montrent quelques possibilités du langage TeX dans la gestion des arguments. Elles ne sont sans doute pas optimales mais elles pourront peut être servir à des personnes bloqués dans un problème d'arguments.
\def\modif #1{\edef #1{#1+un}}
\def\X{bidule} |
\def\increm#1{% \edef\machin{#1.0 }% pour gérer le cas où #1 est entier \toque={#1} % contient la "variable paramètre" \def\sousincrem ##1.##2 {% \def\soussousincrem ####1.####2.####3 {% le ####3 est forcément zéro \setcounter{nb}{####1+1} \expandafter\def\the\toque{\thenb.####2}} \def\truc{##2} \ifx\truc\zero \setcounter{nb}{##1+1} \expandafter\def\the\toque{\thenb} \else \expandafter\soussousincrem\machin \fi } \expandafter\sousincrem\machin % } \def\X{-5.33} |
\def\tronk#1{% \edef\machin{#1.0 }% pour gérer le cas où X est entier \toque={#1} \def\soustronk ##1.##2 {% \def\soussoustronk ####1.####2.####3 {% le ####3 est forcément zéro \expandafter\def\the\toque{####1}} \def\truc{##2} \ifx\truc\zero \expandafter\def\the\toque{##1} \else \expandafter\soussoustronk\machin \fi } \expandafter\soustronk\machin } |