[Résolu][siunitx] Option obeyall et mode math

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.

[Résolu][siunitx] Option obeyall et mode math

Messagepar MB » Mardi 22 Septembre 2009, 16:05

Bonjour, je ne parviens pas à faire fonctionner le mode obeyall en mode math. Il semble pourtant d'après la documentation que cela doive fonctionner.
Voici un ECM :

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage{amsmath}
%
\usepackage[noload=abbr]{siunitx}
\sisetup{decimalsymbol=comma}
%
\begin{document}

\begin{enumerate}
\item En mode texte: \textbf{\num[obeyall]{12000}}.
\item En mode math (boldsymbol): $\boldsymbol{\num[obeyall]{12000}}$.
\item En mode math (mathbf): $\mathbf{\num[obeyall]{12000}}$.
\end{enumerate}

\end{document}
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6885
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [siunitx] Option obeyall et mode math

Messagepar Aeon » Mardi 22 Septembre 2009, 18:57

Bonjour,
je suis parvenu à le faire fonctionner dans le troisième cas en changeant \mathbf en \textbf :

Code: Tout sélectionner
\begin{enumerate}
\item En mode texte: \textbf{\num[obeyall]{12000}}.
\item En mode math (boldsymbol): $\boldsymbol{\si[obeyall]{12000}}$.
\item En mode math (mathbf): $\textbf{\num[obeyall]{12000}}$.
\end{enumerate}


Mais tu y avais déjà surement pensé..
Aeon
Hecto-utilisateur
 
Messages: 67
Inscription: Jeudi 07 Juin 2007, 16:37
Localisation: Poitiers
Statut actuel: Post-bac | Ecole d'ingénieur

Re: [siunitx] Option obeyall et mode math

Messagepar pg » Mardi 22 Septembre 2009, 21:46

Il y a une option "inlinebold" pour les maths dans le texte (par défaut, le obeybold ne concerne que les maths entre \[...\]). Par contre, ça ne fonctionne pas avec \mathbf car siunitx teste uniquement si la version mathématique est grasse, pas si la famille courante est grasse.

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage{amsmath}

\usepackage[noload=abbr]{siunitx}
\sisetup{decimalsymbol=comma}
\sisetup{inlinebold}

\begin{document}

\begin{enumerate}
\item En mode texte : \num[obeyall]{12000}.
\item En mode texte : \textbf{\num[obeyall]{12000}}.
\item En mode math (boldsymbol) : $\boldsymbol{\num[obeyall]{12000}}$.
\item En mode math (mathbf) : $\mathbf{\num[obeyall]{12000}}$.
\item En mode math (boldmath) : {\boldmath$\num[obeyall]{12000}$}.
\item En mode displaymath (boldsymbol) :
\[\boldsymbol{\num[obeyall]{12000}}\]
\item En mode displaymath (mathbf) :
\[\mathbf{\num[obeyall]{12000}}\]
\item En mode displaymath (boldmath) :
{\boldmath\[\num[obeyall]{12000}\]}
\item En mode displaymath :
\[\num[obeyall]{12000}\]
\end{enumerate}

\end{document}

Si tu as vraiment besoin que la fonctionnalité marche avec \mathbf, il est possible de l'obtenir en faisant des modifications à siunitx ainsi qu'à une commande de latex.ltx (pas forcément une très bonne idée de faire ça, donc à toi de voir) :

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\usepackage{amsmath}

\usepackage[noload=abbr]{siunitx}
\sisetup{decimalsymbol=comma}
\sisetup{inlinebold}

% modification d'une commande du noyau de LaTeX
\makeatletter
\def\use@mathgroup#1#2{\relax\ifmmode
     \math@bgroup
         \expandafter\ifx\csname M@\f@encoding\endcsname#1\else
         #1\fi
         \def\current@math@fam{#2}% <--- partie modifiée pour obtenir la famille courante
         \mathgroup#2\relax
     \expandafter\math@egroup\fi}%
\makeatother

% modification d'une commande de siunitx
\makeatletter
\renewcommand*{\si@fam@ifbmaths}[1]{%
  \renewcommand*{\si@tempa}{bold}%
  \ifx\current@math@fam\undefined
    \ifx\math@version\si@tempa
      #1
    \fi
  \else
    \def\target@math@fam{6}
    \ifx\current@math@fam\target@math@fam#1\fi
  \fi
}
\makeatother

\begin{document}


\begin{enumerate}
\item En mode texte : \num[obeyall]{12000}.
\item En mode texte : \textbf{\num[obeyall]{12000}}.
\item En mode math (boldsymbol) : $\boldsymbol{\num[obeyall]{12000}}$.
\item En mode math (mathbf) : $\mathbf{\num[obeyall]{12000}}$.
\item En mode math (mathsf) : $\mathsf{\num[obeyall]{12000}}$.
\item En mode math (mathit) : $\mathit{\num[obeyall]{12000}}$.
\item En mode math (boldmath) : {\boldmath$\num[obeyall]{12000}$}.
\item En mode displaymath (boldsymbol) :
\[\boldsymbol{\num[obeyall]{12000}}\]
\item En mode displaymath (mathbf) :
\[\mathbf{\num[obeyall]{12000}}\]
\item En mode displaymath (boldmath) :
{\boldmath\[\num[obeyall]{12000}\]}
\item En mode displaymath :
\[\num[obeyall]{12000}\]
\end{enumerate}

\end{document}
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [siunitx] Option obeyall et mode math

Messagepar MB » Mercredi 23 Septembre 2009, 15:29

Aeon a écrit:Mais tu y avais déjà surement pensé..


Non, je n'y avais pas pensé. Etrange comme solution. :D

pg a écrit:Il y a une option "inlinebold" pour les maths dans le texte (par défaut, le obeybold ne concerne que les maths entre \[...\]).


Ok, merci encore une fois pg. J'avais raté cette option ...
Mon problème est donc résolu car je n'ai pas le besoin de faire fonctionner tout ça avec mathbx. :D
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6885
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Baidu [Spider], Google Adsense [Bot], Grapeshot [Crawler] et 27 invités