--- myst: html_meta: keywords: LaTeX, programmation, commandes, macros, mode mathématique --- # Que fait `\ensuremath` ? La commande `\ensuremath` permet de s'assurer que son argument sera composé en [mode mathématique](/4_domaines_specialises/mathematiques/passer_en_mode_mathematique), *quel que soit le mode courant*. Cela permet de définir des commandes qui pourront être utilisées aussi bien en mode mathématique que dans du texte, ce qui simplifie leur utilisation. Par exemple : ``` \documentclass{article} \usepackage{lmodern} % Caractères plus lisibles \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{amssymb} % Nous donne \mathbb \newcommand{\NN}{\ensuremath{\mathbb{N}}} \begin{document} Soit l'ensemble des entiers \NN, il a pour cardinal : \[ \# \NN = \infty \] \end{document} ``` TeX fournit aussi la valeur booléenne `\ifmmode`, qui est vraie en mode mathématique et fausse ailleurs. On pourra donc définir la commande suivante (en gardant en tête les avertissements de la question "[](preferer_newcommand_a_def.md)" si vous êtes un utilisateur non chevronné). ``` \documentclass{article} \usepackage{lmodern} % Caractères plus lisibles \pagestyle{empty} % N'affiche pas de numéro de page \def\ssi{\ifmmode \Leftrightarrow \else si, et seulement si, \fi} \begin{document} Par exemple, A$\times$B vaut 0 \ssi A vaut 0 ou B vaut 0. \[ A \times B = 0 \ssi A = 0 \textrm{ ou } B =0 \] \end{document} ```