====== Commandes et environnements ====== FIXME Compléter (et sans doute réorganiser) le sommaire. FIXME Indiquer systématiquement les solutions avec \NewDocumentCommand. ===== Bonnes pratiques de programmation ===== [[2_programmation:macros:utiliser_des_commandes_plain_en_latex|Pourquoi éviter d'utiliser des primitives TeX ou des commandes Plain TeX avec LaTeX ?]] (en particulier : [[2_programmation:macros:preferer_newcommand_a_def|Pourquoi préférer \newcommand à \def?]]) [[2_programmation:macros:bien_nommer_ses_macros_et_environnements|Comment bien nommer ses commandes et environnements ?]] [[2_programmation:macros:caractere_pourcent_dans_les_macros|Pourquoi y a-t-il tant de “%” dans le code des macros ?]] (ou : comment bien utiliser le signe ''%'' pour éviter d'introduire des espaces indésirables dans son document) ===== Définir de nouvelles commandes avec les outils fournis par LaTeX ===== [[2_programmation:macros:cette_commande_est_elle_definie|Comment tester si une commande est déjà définie ?]] [[2_programmation:macros:commande_newcommand|(Re)définir des commandes basiques avec \newcommand et \renewcommand]] [[2_programmation:macros:etoiler_ses_newcommand|Quand doit-on utiliser la version étoilée de \newcommand ?]] [[2_programmation:macros:arguments_optionnels_comme_pour_section|Comment définir des arguments optionnels comme ceux de \section ?]]\\ Concerne les arguments optionnels qui prennent comme valeur par défaut un des arguments fournis par l'utilisateur. Pour les arguments optionnels dont la valeur par défaut est toujours la même, voir [[2_programmation:macros:commande_newcommand|ici]]. [[2_programmation:macros:commande_etoilee3|Comment définir une commande étoilée ?]]\\ FIXME fusionner avec [[2_programmation:macros:commande_etoilee|Comment définir une commande étoilée?]] et [[2_programmation:macros:definir_des_variantes_etoilees|Définir des variantes étoilées des commandes et environnements]] [[2_programmation:macros:makeatletter_et_makeatother|À quoi servent “\makeatletter” et “\makeatother” ?]] [[2_programmation:macros:commande_newenvironment|Définir des environnements avec \newenvironment et \renewenvironment]] ===== Définir de nouvelles commandes avec les primitives de TeX ===== [[2_programmation:macros:cette_commande_est_elle_definie|Comment tester si une commande est déjà définie ?]] [[2_programmation:macros:que_sont_les_macros|Comment définir des commandes basiques avec les primitives de TeX ?]] [[2_programmation:macros:definir_une_macro_a_partir_d_un_argument|Comment créer une commande qui permet de définir de nouvelles commandes en les nommant d'après un argument ?]] [[2_programmation:macros:delimiteurs_speciaux|Comment utiliser d'autres délimiteurs que les crochets et les accolades dans une commande ?]] ===== Comprendre la définition des macros TeX ou LaTeX existantes ===== [[2_programmation:macros:obtenir_la_definition_des_commandes_latex|Obtenir la définition d'une commande]] [[2_programmation:macros:makeatletter_et_makeatother|À quoi servent “\makeatletter” et “\makeatother” ?]] (ou : à quoi sert l'arobase dans le nom de certaines commandes?) [[2_programmation:macros:abreviations_internes_de_latex|Que signifient certaines commandes sous forme abrégée ?]] ===== Problèmes généraux ===== * [[2_programmation:macros:surcharger_une_commande|Comment enrichir la définition d'une commande déjà existante sans la redéfinir entièrement ?]] * [[2_programmation:macros:definir_une_macro_a_l_interieur_d_une_autre_macro|Comment définir des commandes à l'intérieur de la définition d'autres commandes ?]] * [[2_programmation:macros:definir_une_macro_a_plus_de_9_arguments|Comment dépasser la limite des 9 arguments pour une commande ?]] * [[2_programmation:macros:arguments-cle-valeur|Comment définir des arguments clé-valeur ?]] * [[2_programmation:macros:commande_special|Passer directement une commande à un pilote avec \special]] ===== Trucs et astuces ===== [[2_programmation:macros:ignorespacesafterend|Comment éviter l'espace insérée après un environnement personnalisé?]] [[2_programmation:macros:afficher_les_deux_derniers_chiffres_de_l_annee|Comment n'afficher que les deux derniers chiffres de l'année ?]] [[2_programmation:macros:comparer_une_chaine_a_jobname|Comment comparer \jobname à quelque chose ?]] [[2_programmation:macros:commande_ensuremath|Forcer l'utilisation du mode mathématique avec \ensuremath]]