Créer un test \ifmath

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Créer un test \ifmath

Messagepar _Y_B_ » Dimanche 02 Septembre 2018, 08:50

Bonjour,
Ma question est comment définir en tex une commande :
\ifmaths{<code si vrai>}{<code si faux>}
Qui vous renvoie un certain code si votre texte se situe dans un environnement maths ou un autre si ce n'est pas le cas.
Je souhaite ainsi me redéfinir une petite macro \ul, qui vous souligne avec les paramètres du package soul si vous êtes hors d'un environnement maths, qui effectue \underline si vous êtes dedans.

Merci de bien vouloir prendre en considération ma demande :)
_Y_B_
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 30 Août 2016, 15:27
Statut actuel: Post-bac | CPGE

Publicité

Re: Créer un test \ifmath

Messagepar touhami » Dimanche 02 Septembre 2018, 09:10

Bonjour.
La commande \TextOrMath fait ce que vous voulez.
Code: Tout sélectionner
\TextOrMath{code si Texte}{code si Math}
touhami
Méga-utilisateur
 
Messages: 407
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: [TeX]Créer un test \ifmath

Messagepar _Y_B_ » Dimanche 02 Septembre 2018, 09:42

Merci, ca m'aidera beaucoup :D

Voilà le code que j'ai fait :
Code: Tout sélectionner
\documentclass[a4paper, fleqn, oneside, table, french, hypertexnames=false]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{layout}
\usepackage[top=3cm, bottom=3cm, left=3cm, right=2cm]{geometry}
\usepackage{soulutf8}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\catcode`\@= 11
\let\under@line\ul
\def\ul#1{
   \TextOrMath{          %Teste si on est en mode mathématiques
      \under@line{#1}         %Soulignement du mode texte
   }{
      \underline{#1}           %Soulignement du mode maths
   }
}
\catcode`\@=12

\begin{document}

\ul{coucou}
$\ul{5+5=10}$

\end{document}


Existe-t-il des commandes similaires pour voir si on est en mode "indice" ou "exposant", pour cette fois ci enlever le displaystyle de ces modes.
J'utilise par exemple :
Code: Tout sélectionner
\documentclass[a4paper, fleqn, oneside, table, french, hypertexnames=false]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{layout}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\everymath{\displaystyle{}}

\begin{document}

$\lim_{+\infty \rightarrow +\infty}$

\end{document}


Si on compile ce code on peut voir une différence de taille entre les deux infinis.
_Y_B_
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 30 Août 2016, 15:27
Statut actuel: Post-bac | CPGE

Re: Créer un test \ifmath

Messagepar _Y_B_ » Dimanche 02 Septembre 2018, 10:15

Excusez-moi, une erreur de ma part dans le code :

Code: Tout sélectionner
\documentclass[a4paper, fleqn, oneside, table, french, hypertexnames=false]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{layout}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\newcommand{\ra}{\displaystyle\ensuremath{\mathop{\rightarrow}}}    % au dessus ou en-dessous de la flèche

\everymath{\displaystyle{}}

\begin{document}

$\lim_{+\infty \ra+\infty}$

\end{document}
_Y_B_
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 30 Août 2016, 15:27
Statut actuel: Post-bac | CPGE

Re: Créer un test \ifmath

Messagepar _Y_B_ » Dimanche 02 Septembre 2018, 10:36

Après quelques recherches, j'ai trouvé sur ce site :
https://tex.stackexchange.com/questions/1223/is-there-a-test-for-the-different-styles-inside-maths-mode/1253#1253
Cette commande : mathchoice
Code: Tout sélectionner
\documentclass{article}

\newcommand\mathtest{%
  \mathchoice
  {displaystyle}
  {text style}
  {scriptstyle}
  {scriptscriptstyle}
}

\begin{document}
\[
 \mathtest x^{\mathtest^{\mathtest}}
\]

\(
  \mathtest
\)

\end{document}
_Y_B_
Déca-utilisateur
 
Messages: 36
Inscription: Mardi 30 Août 2016, 15:27
Statut actuel: Post-bac | CPGE


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Baidu [Spider], Bing [Bot], Google [Bot] et 8 invités