Page 1 sur 1

Problème avec TextOrMath

MessagePosté: Dimanche 17 Mars 2019, 12:38
par _Y_B_
Bonjour,
Lorsque j'avais demandé s'il existait un test du type "ifmath", on m'avait proposé la commande TextOrMath, qui fonctionne bien mais qui a pourtant un petit problème, en effet, cette commande me crée un espace indésirable. Cependant cet espace n'apparaît pas en mode maths (surement dû au fait que le mode maths supprime d'office les espaces)
Voilà un exemple de la commande que j'utilise :
Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{soulutf8}

\catcode`\@=11
\let\under@line\ul  %\ul est fournie par soulutf8
\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
   }
}

\begin{document}

\noindent Lorem ipsum \under@line{dolor sit amet}, consectetur adipiscing elit.\\
Lorem ipsum \ul{dolor sit amet}, consectetur adipiscing elit.\\
$\ul H = \frac{\ul S}{\ul E}$\\

\end{document}


Existe-t-il une méthode pour pallier à ce problème ?

Re: Problème avec TextOrMath

MessagePosté: Dimanche 17 Mars 2019, 13:57
par Denis Bitouzé
Chaque retour chariot, y compris dans les définitions de macros, crée une espace horizontale. Il suffit de « protéger » lesdits retours chariots en les « commentant », ainsi :

Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{soulutf8}

\catcode`\@=11
\let\under@line\ul  %\ul est fournie par soulutf8
\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
  }%
}

\begin{document}

\noindent Lorem ipsum \under@line{dolor sit amet}, consectetur adipiscing elit.\\
Lorem ipsum \ul{dolor sit amet}, consectetur adipiscing elit.\\
$\ul H = \frac{\ul S}{\ul E}$\\

\end{document}

Re: Problème avec TextOrMath

MessagePosté: Dimanche 17 Mars 2019, 17:09
par _Y_B_
Super !
Ca marche.
Merci pour votre aide :)