Faire apparaître des espaces dans des nombres décimaux

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.

Faire apparaître des espaces dans des nombres décimaux

Messagepar projetmbc » Mardi 23 Juin 2009, 08:29

Bonjour,

je voudrais faire une commande qui transformerait quelque chose comme "1.234.567.890,555.666.77" ou "1,234,567,890.555,666,77" au choix, en "1 234 567 890,555 666 77" ou "1 234 567 890.555 666 77".

On indiquerait le séparateur de décimaux, c'est à dire "," en français ou "." en anglais. La commande serait donc du type \numb{1.234.567.890,555.666.77}[,]. Il faudrait ensuite remplacer les points ou virgules qui permettent de séparer les groupes de trois chiffres par un espace.

Pour finir la méthode doit faire avec les choix de l'utilisateur. Par exemple, "12345.678.90,555" doit devenir "12345 678 90,555" même s'il on sait que cela est faux.

Toute info. est la bienvenue.
Dernière édition par projetmbc le Mardi 23 Juin 2009, 14:46, édité 1 fois.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Bien écrire des nombres décimaux

Messagepar un bon petit » Mardi 23 Juin 2009, 08:58

Tu devrais regarder du côté du package numprint qui est le spécialiste de l'affichage de nombres. Tu devrais trouver ton bonheur parmis les fonctionnalités proposées...
un bon petit
Giga-utilisateur
 
Messages: 676
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Bien écrire des nombres décimaux

Messagepar MB » Mardi 23 Juin 2009, 09:17

En effet, numprint devrait être la bonne solution. Sans réel rapport, je te recommande aussi icomma qui ne fait jamais de mal.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar projetmbc » Mardi 23 Juin 2009, 15:19

Merci mais ce n'est pas ce que je cherche car je veux accepter des fausses écritures.

Comment pourrais-je me lancer dans une commande avec un argument sep_virgule qui parcourerait le nombre pour y remplacer les points si sep_virgule = 1, et les virgules sinon, par l'espacement LaTeX \: ?

Toute info. est la bienvenue.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar pg » Mardi 23 Juin 2009, 16:39

Tu peux faire ce genre de choses avec xstring.

Code: Tout sélectionner
\documentclass{article}

\usepackage{xstring}

\makeatletter
\newcommand{\formatenombre}[1]{%
\@ifnextchar[{\formatenombre@{#1}}{\formatenombre@{#1}[,]}%
}
\def\formatenombre@#1[#2]{%
  \ifx#2,%
    \StrSubstitute{#1}{.}{\kern0.28em}%
  \else
    \StrSubstitute{#1}{,}{\kern0.28em}%
  \fi
}
\makeatother

\begin{document}

\texttt{1.234.567.890,555.666.77} devient \formatenombre{1.234.567.890,555.666.77}[,]

\texttt{1,234,567,890.555,666,77} devient \formatenombre{1,234,567,890.555,666,77}[.]

Avec une fausse \'ecriture~: \formatenombre{12345.678.90,555}% pas besoin de spécifier [,] c'est le choix par défaut

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

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar un bon petit » Mardi 23 Juin 2009, 16:58

Je propose ce code, écrit à la va vite. La macro \numb admet un argument facultatif qui vaut «,» par défaut. Le second argument est le nombre à formater.

Si l'argument facultatif est «,» ou «.» alors, ces caractères sont remplacés par un espace de 0.3333em dans le nombre (à ajuster selon tes gouts). Sinon, la macro n'a aucun effet :

Code: Tout sélectionner
\documentclass{article}
\usepackage{xstring}

\newcommand\numb[2][,]{%
   \begingroup
      \expandarg
      \def\commasep{,}\def\dotsep{.}%
      \def\decsep{#1}\def\sepspace{\kern0.3333em}%
      \def\numtoprint{#2}%
      \ifx\decsep\commasep
         \StrSubstitute\numtoprint\commasep\sepspace
      \else
         \ifx\decsep\dotsep
            \StrSubstitute\numtoprint\dotsep\sepspace
         \else
            #2%
         \fi
      \fi
   \endgroup
}
\begin{document}

\numb{123,456,789.456,789}

\numb[.]{123.456.789,032}

\numb[+]{123.456.789,032}
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 676
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar projetmbc » Mercredi 24 Juin 2009, 12:04

J'ai un petit souci : le lien de téléchargement du package xstring proposé par MiKTeX ne fonctionne pas. Je vais installer le package à la main mais du coup j'ai deux questions : "Peut-on ajouter, changer un lien de téléchargement d'un package ? En cas de lien défectueux, peut-on faire remonter l'info. au près des développeurs de MiKTeX ?".
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar un bon petit » Mercredi 24 Juin 2009, 12:30

Normalement, xstring est installé sans problème par miktex :roll: . Enfin, lorsque j'avais essayé dans une machine virtuelle il y a 6 mois, ça fonctionnait.

Mais bon, étant justement le développeur de xstring, et n'utilisant pas miktex puisque je tourne sous linux/texlive, si tu as un problème, n'hésite pas à me le dire que je le signale à l'équipe miketx si c'est nécessaire.

Sinon, il suffit d'installer les fichiers xstring.tex et xstring .sty dans un répertoire visible par ta distribution. Le problème c'est que je ne sais pas du tout comment ça se passe avec windows, je ne peux donc pas t'aider pour te dire dans quels répertoires il faut les placer !

Christian
un bon petit
Giga-utilisateur
 
Messages: 676
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar projetmbc » Mercredi 24 Juin 2009, 19:02

un bon petit a écrit:Normalement, xstring est installé sans problème par miktex :roll: . Enfin, lorsque j'avais essayé dans une machine virtuelle il y a 6 mois, ça fonctionnait.
Mais bon, étant justement le développeur de xstring, et n'utilisant pas miktex puisque je tourne sous linux/texlive, si tu as un problème, n'hésite pas à me le dire que je le signale à l'équipe miketx si c'est nécessaire.

Je crois en fait que mon installation de MiKTeX est bancale. Voici le message d'erreur qui m'est envoyé :
Code: Tout sélectionner
MiKTeX Problem Report
Message: Not a valid remote package repository.
Data: ftp://mirrors.localhost.net.ar/pub/mirrors/ctan/systems/win32/miktex/tm/packages/
Source: C:\work3\miktex-2.7\Libraries\MiKTeX\PackageManager\PackageManager.cpp
Line: 2170
MiKTeX: 2.7
OS: Microsoft Windows XP Home Edition Service Pack 3 (build 2600)
SystemAdmin: yes
PowerUser: no
SharedSetup: yes
BinDir: C:\Program Files\MiKTeX 2.7\miktex\bin
Root0: C:\Documents and Settings\Christophe\Application Data\MiKTeX\2.7
Root1: C:\Documents and Settings\Christophe\Local Settings\Application Data\MiKTeX\2.7
Root2: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.7
Root3: C:\Program Files\MiKTeX 2.7
Install: C:\Program Files\MiKTeX 2.7
UserConfig: C:\Documents and Settings\Christophe\Application Data\MiKTeX\2.7
UserData: C:\Documents and Settings\Christophe\Local Settings\Application Data\MiKTeX\2.7
CommonConfig: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.7
CommonData: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.7

Hum je crois savoir d'où vient le problème. Je vais tout désinstaller en virant aussi tous les fichiers dans "Application Data". Je reviens ici pour dire si c'est bien là le problème.

un bon petit a écrit:Sinon, il suffit d'installer les fichiers xstring.tex et xstring .sty dans un répertoire visible par ta distribution. Le problème c'est que je ne sais pas du tout comment ça se passe avec windows, je ne peux donc pas t'aider pour te dire dans quels répertoires il faut les placer !

Cela n'est pas bien difficile. J'ai mis les fichiers STY dans "C:\Program Files\MiKTeX 2.7\tex".

Sinon pour grader les séparateurs de milliers, il suffit de mettre un argument vide comme suit :
Code: Tout sélectionner
\numb[+]{123.456.789,032}

Très sympa comme fonctionnalité. Merci. :mrgreen:
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar projetmbc » Jeudi 25 Juin 2009, 09:03

un bon petit a écrit:Normalement, xstring est installé sans problème par miktex :roll:

Le problème vient de mon installation car j'ai le même souci avec d'autres packages. Je ne sais pas d'où cela vient finalement. Tout ce que me dit le "Browse Package" (en plus du message donné avant) c'est :
Not a avlaid remote package repository.

Data:
ftp://mirrors.localhost.net.ar/pub/mirr ... /packages/

Mystère, mystère...
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Faire apparaître des espaces dans des nombres décimaux

Messagepar pg » Jeudi 25 Juin 2009, 09:05

T'as essayé d'autres miroirs ? (dans le menu Repository > Change package repository)
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Grapeshot [Crawler] et 8 invités