Formater les numéros de téléphones à la française: par paire

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.

Formater les numéros de téléphones à la française: par paire

Messagepar josephtux » Jeudi 08 Février 2018, 12:14

Je crois avoir trouvé quelque part la réponse à cette question, mais ne trouvant plus où, je suis contraint d'appliquer l'écriture besogneuse suivante:

03\,45\,67\,89\,00
Debian GNU/Linux 8.5 (jessie)
pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian)

1 % d'inspiration, 99% de transpiration (A.Einstein)
josephtux
Déca-utilisateur
 
Messages: 38
Inscription: Mardi 25 Octobre 2011, 11:06
Localisation: Picardie
Statut actuel: Actif et salarié

Publicité

Re: Formater les numéros de téléphones à la française: par p

Messagepar un bon petit » Jeudi 08 Février 2018, 12:37

Code: Tout sélectionner
\documentclass{article}
\def\tel#1{\teli#1\teli}
\def\teli#1#2#3#4#5#6#7#8{#1#2\,#3#4\,#5#6\,#7#8\,\telii}
\def\telii#1#2\teli{#1#2}
\begin{document}
\tel{01 02 03 04 05}.

\tel{0102030405}.
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 647
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar gigiair » Jeudi 08 Février 2018, 17:12

C'est très brillant, mais je n'utiliserais pas TeX pour faire ça, j'en suis incapable et je ne pourrais adapter et maintenir le code si le besoin s'en faisait sentir.
Comme pour la plupart des problèmes un peu complexes, je préfère traiter le code avant de l'envoyer au compilateur pdftex.
Dans ce cas précis, une simple recherche et remplacement permet de formater les numéros de téléphone
La plupart des éditeurs de texte orientés LaTeX permettent de le faire avec des expressions régulières, c'est un apprentissage, mais l'usage des expressions régulières est très puissant et peut faire gagner beaucoup de temps. Donc ici remplacer
Code: Tout sélectionner
\([0-9][0-9]\)[ -]*\([0-9][0-9]\)[ -]*\([0-9][0-9]\)[ -]*\([0-9][0-9]\)[ -]*\([0-9][0-9]\)
par
Code: Tout sélectionner
 \1\\,\2\\,\3\\,\4\\,\5
fait le truc.
J'ai employé la syntaxe des regexp Emacs ou il faut doubler le caractère \ car \, est l'annonce que ce qui suit est du code elisp.
J'ai mis l'espace et le tiret comme séparateur possible, il est bien évident qu'on peut adapter.
il faut voir avec son éditeur.
Avec Emacs, il est bien facile de créer une commande pour insérer du texte dans le format que l'on désire, et créer un raccourci pour l'exécuter.

J'ai testé ma proposition avec TeXStudio et TeXMaker. ça ne m'a pas paru possible avec TeXMaker, la recherche-remplacement avec des regexps est trop sommaire.
Aec TeXStudio, ça va bien, modulo une syntaxe particulière pour les regexps.
texstdmt.png
recherche regexp texstudio
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2340
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar MB » Dimanche 11 Février 2018, 10:20

Bonjour, même si TeX n'est pas très pratique et/ou intuitif pour réaliser certaines opérations, il est quand même plus agréable d'avoir un fichier qui se compile sans dépendre de l'éditeur utilisé ou d'un programme externe. Dans ce cas, l'utilisation de Luatex est une bonne option, car il permet de faire appel à Lua (langage de script assez puissant) en interne.
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: 6841
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar gigiair » Dimanche 11 Février 2018, 11:20

L'objection ne me paraît pas recevable, la compilation ne dépend pas de la façon dont le code est édité. On n'est pas non plus obligé d'utiliser un éditeur pour produire un document LaTeX. Il suffit de rentrer son code ligne par ligne après avoir tapé la commande latex

Une objection recevable est que l'apprentissage de l'usage des expressions régulières demande un effort, et que la composition d'une expression régulière un peu complexe n'est pas toujours facile.
Ce n'est pas le cas pour le problème qui nous intéresse.
Ceux qui ne les utilisent pas n'ont sans doute pas idée des avantages que l'on peut en attendre. Un outil puissant, c'est rare que ça ne demande pas un apprentissage.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2340
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar MB » Dimanche 11 Février 2018, 11:50

Je me suis mal exprimé, ce que je voulais dire c'est que la méthode proposée nécessite l'usage d'un éditeur un peu évolué (puisque déjà ça ne fonctionne pas avec Texmaker). Le fait d'avoir une commande \tel qui s'occupe automatiquement de la mise en forme (que ce soit via tex ou lua) reste de mon point de vue plus pratique que d'avoir à gérer cette mise en forme directement dans le fichier source.
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: 6841
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar un bon petit » Dimanche 11 Février 2018, 12:01

gigiair a écrit:L'objection ne me paraît pas recevable

L'objection est recevable pour plusieurs raisons.

La première est que, sans trop de doute, le PO demandait une macro pour formater ses expressions et non pas une aide sur un éditeur pour exécuter cette tâche. Mais vous, vous comprenez toujours les questions avant tout sous l'angle de emacs !

Ensuite, un remplacement par expression régulière le fait aveuglément ce qui n'est pas le cas d'une macro que l'on écrit que lorsque c'est nécessaire. Par exemple, si le texte contient "$\pi=3{,}1415926536", alors votre méthode va mettre un bazar monstre.

Puis, l'avantage d'une macro est que l'on peut très aisément la modifier pour agir sur toutes ses exécutions ensuite. Avec votre méthode, si on a déjà remplacé "01234567" par "01\,23\,45\,67" et que l'on souhaite une espace insécable au lieu des "\", il faut reconstruire une expression régulière pas évidente. Avec ma macro, remplacez simplement les "\," par des "~" et le tour est joué.

Enfin, apprendre les arguments délimités de TeX est beaucoup plus utile pour un LaTeXien que d'apprendre à se servir d'expressions régulières ou pire de emacs. Regardez la macro que j'ai donnée, elle est triviale lorsqu'on a compris comment fonctionnent les arguments délimités de TeX. Si, si : triviale. Regardez la bien !

Bref, il n'y a rien de bien nouveau, dès qu'une question a la moindre chance d'avoir un rapport avec emacs et ses possibilités, vous sortez de l'ombre et comme toujours, vous tentez de promouvoir la puissance (incontestée je le reconnais) d'emacs au détriment d'outils construits avec des packages, avec LaTeX ou TeX, quitte à détourner le sujet et son auteur de son objectif initial. Au fait, c'est quand que vous apprenez TeX ?
un bon petit
Giga-utilisateur
 
Messages: 647
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar gigiair » Dimanche 11 Février 2018, 12:14

Ce sont deux points de vue différents. Le mien est que, quand c'est possible, il vaut mieux traiter les problèmes d'édition ou de formatage du texte au niveau de l'éditeur qu'au niveau du compilateur.
On peut alors exécuter de petits ajustements avant la compilation, c'est plus souple que de reprendre le code TeX ou autre.
Un exemple (purement formel) de problème serait le remplacement de tous les \textbf{...} par des \textit{...} d'un document. On pourrait modifier le code des macros \textbf pour qu'il produise des \textit, mais l'on ne souhaite le remplacement que dans certains cas, ça peut devenir assez sportif. La bonne solution est évidemment d'effectuer une recherche/remplacement avec expression régulière, mais ce n'est pas toujours aussi évident que ça.
Je n'ai rien contre la solution proposée par UBP que je trouve brillante, j'aime le code concis et efficace. Je propose une autre solution car c'est souvent plus facile de faire ainsi et plus à la portée des non-programmeurs.
Il est regrettable que TeXMaker soit aussi limité. Je suis persuadé que beaucoup d'éditeurs de code proposent un usage décent des expressions régulières. Là je sens qu'il va y avoir des réactions...
En me relisant, j'ai un doute. Après tout je ne suis pas un utilisateur averti de TeXMaker, peut-être qu'il est possible de faire avec. Les spécialistes de cet éditeur me diront.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2340
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar MB » Dimanche 11 Février 2018, 13:42

gigiair a écrit:Ce sont deux points de vue différents. Le mien est que, quand c'est possible, il vaut mieux traiter les problèmes d'édition ou de formatage du texte au niveau de l'éditeur qu'au niveau du compilateur.
On peut alors exécuter de petits ajustements avant la compilation, c'est plus souple que de reprendre le code TeX ou autre.


Il me semble qu'il convient de distinguer deux cas. Si il s'agit d'une "erreur" lors de la rédaction du fichier source (par exemple le cas où on a utilisé des \textbf au lieu des \textit), dans ce cas il est logique de se débrouiller pour éditer le fichier source plutôt que de chercher à modifier le fonctionnement de latex. Sinon, il me semble préférable (et dans l'esprit général de TeX) de s'occuper le moins possible de la mise en forme dans le fichier source et de faire en sorte que TeX s'en charge.
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: 6841
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar gigiair » Dimanche 11 Février 2018, 15:43

MB a écrit: Sinon, il me semble préférable (et dans l'esprit général de TeX) de s'occuper le moins possible de la mise en forme dans le fichier source et de faire en sorte que TeX s'en charge.

Je ne vois pas ce qui justifie cette idée, tu peux développer ?

Le fichier source est d'abord lu par la personne qui le compose et doit être en accord avec sa pensée. Ce n'est pas toujours facile et la présence de macros n'aide pas à sa compréhension.
C'est particulièrement important de comprendre rapidement le sens du document quand on veut en effectuer une révision quelques années après l'avoir composé. C'est pour ça que je préfère avoir toujours le moins de macros possibles. C'est mon point de vue et je le partage comme aurait dit M. Prudhomme :)
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2340
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar balf » Dimanche 11 Février 2018, 15:58

un bon petit a écrit:si on a déjà remplacé "01234567" par "01\,23\,45\,67" et que l'on souhaite une espace insécable au lieu des "\", il faut reconstruire une expression régulière pas évidente


Mais il me semble bien que \, produit une espace fine, certes, mais aussi insécable ?

B. A.
balf
Zetta-utilisateur
 
Messages: 3726
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Formater les numéros de téléphones à la française: par p

Messagepar MB » Dimanche 11 Février 2018, 16:06

Disons que la mise en page du fichier source n'est pas censée représenter celle du fichier final (ie on n'est pas dans le cadre d'un logiciel WYSIWYG). Par exemple, on peut sauter des lignes, ajouter des espaces ou des tabulations dans le fichier source sans que ça n'impacte la mise en page finale. Donc effectivement, il est difficile de se rendre compte du rendu final en observant le contenu d'un fichier tex, mais de mon point de vue ça ne pose pas de problème et c'est même avantage puisque ça apporte pas mal de souplesse dans la rédaction (et au pire on peut utiliser des logiciels de type LyX).
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: 6841
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar gigiair » Dimanche 11 Février 2018, 16:27

balf a écrit:
un bon petit a écrit:si on a déjà remplacé "01234567" par "01\,23\,45\,67" et que l'on souhaite une espace insécable au lieu des "\", il faut reconstruire une expression régulière pas évidente


Mais il me semble bien que \, produit une espace fine, certes, mais aussi insécable ?

B. A.

De toute façon, il n'y a pas de difficultés pour insérer des \ dans une expression régulière, c'est prévu mais ça dépend de la syntaxe des ER. Il y en a plusieurs on ne peut pas poser ce problème abstraitement.
Ce qui est pratique pour mettre au point les expressions régulières ce sont les programmes qui visualisent en temps réel leur effet sur un document donné. Quand on veut aller à la chasse aux éléphants, il faut s'équiper correctement. Le tire-boulettes n'est pas obligatoire.
Construire une ER abstraitement ça peut parfois être aussi difficile que d'imaginer l'expansion d'une macro TeX pour résoudre un problème donné.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2340
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar un bon petit » Dimanche 11 Février 2018, 23:43

balf a écrit:Mais il me semble bien que \, produit une espace fine, certes, mais aussi insécable ?

Oui puisque la macro robuste \, est définie à la ligne 1575 par

Code: Tout sélectionner
\DeclareRobustCommand{\,}{%
   \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
}


et que la macro \thinspace est définie à la ligne 1586 par

Code: Tout sélectionner
\def\thinspace{\kern .16667em}


L'emploi de la primitive \kern montre bien que l'espace insérée en mode non mathématique est insécable.
un bon petit
Giga-utilisateur
 
Messages: 647
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Formater les numéros de téléphones à la française: par p

Messagepar gigiair » Lundi 12 Février 2018, 11:54

un bon petit a écrit:L'objection est recevable pour plusieurs raisons.

La première est que, sans trop de doute, le PO demandait une macro pour formater ses expressions et non pas une aide sur un éditeur pour exécuter cette tâche. Mais vous, vous comprenez toujours les questions avant tout sous l'angle de emacs !

J'avais compris que le PO trouvait pénible d'avoir à taper des \, pour marquer des espaces. J'imagine qu'il utilise comme tous les francophones français un clavier AZERTY pour lequel la touche \ est particulièrment mal placée. Peut-être que s'il utilisait un clavier QWERTY américain le problème ne se serait-il pas posé.
Une solution serait aussi de redéfinir la touche "\". Personnellement je l'ai redéfinie par "<F8> _ ".

Je n'interviens sur ce forum sur les questions qui m'intéressent et pour lesquels j'espère apporter une aide. Je ne me sens guère compétent pour intervenir dans les problèmes concernant LaTeX ou encore moins TeX autres que très élémentaires. C'est mal ? Les sujets sur lesquels vous intervenez sont assez ciblés non ? Personne ne vous le reproche.
Une blague sur Emacs : C'est un très bon environnement d'exploitation des ordinateurs, dommage qu'il n'ait pas un bon éditeur.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2340
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar quark67 » Dimanche 25 Mars 2018, 19:55

Bonjour, je réponds sans doute tardivement, mais le package phonenumbers (https://ctan.org/pkg/phonenumbers) peut sans doute répondre à votre question (voir en particulier la section 1.3 de la documentation ; à noter qu'il est possible d'indiquer le code du pays de façon globale dans les options du package).
quark67
Utilisateur
 
Messages: 1
Inscription: Mardi 16 Janvier 2018, 19:41
Statut actuel: Actif et salarié

Re: Formater les numéros de téléphones à la française: par p

Messagepar marco56 » Lundi 26 Mars 2018, 10:51

quark67 a écrit:Bonjour, je réponds sans doute tardivement, mais le package phonenumbers (https://ctan.org/pkg/phonenumbers) peut sans doute répondre à votre question (voir en particulier la section 1.3 de la documentation ; à noter qu'il est possible d'indiquer le code du pays de façon globale dans les options du package).

Cela semble extra, ce truc, pour qui en a l'utilité.
marco56
Giga-utilisateur
 
Messages: 711
Inscription: Jeudi 25 Novembre 2010, 22:10
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: DotBot [Crawler], Magpie [Crawler], Yandex [Bot] et 18 invités