Formater les numéros de téléphones à la française: par paire
-
- Utilisateur confirmé
- Messages : 40
- Inscription : mardi 25 octobre 2011, 12:06
- Localisation : Picardie
- Contact :
Formater les numéros de téléphones à la française: par paire
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
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)
pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian)
1 % d'inspiration, 99% de transpiration (A.Einstein)
-
- Utilisateur éprouvé
- Messages : 995
- Inscription : vendredi 12 juin 2009, 22:35
- Statut actuel : Enseignant
- Localisation : Chambéry
- Contact :
Re: Formater les numéros de téléphones à la française: par p
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}
Programmer en TeX, TeXpérimental
-
- Utilisateur chevronné
- Messages : 2804
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: Formater les numéros de téléphones à la française: par p
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 remplacerparfait 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.
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]\)
Code : Tout sélectionner
\1\\,\2\\,\3\\,\4\\,\5
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.
JJR.
LaTeXien migrateur.
LaTeXien migrateur.
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: Formater les numéros de téléphones à la française: par p
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.
-
- Utilisateur chevronné
- Messages : 2804
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: Formater les numéros de téléphones à la française: par p
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.
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.
LaTeXien migrateur.
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: Formater les numéros de téléphones à la française: par p
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.
-
- Utilisateur éprouvé
- Messages : 995
- Inscription : vendredi 12 juin 2009, 22:35
- Statut actuel : Enseignant
- Localisation : Chambéry
- Contact :
Re: Formater les numéros de téléphones à la française: par p
L'objection est recevable pour plusieurs raisons.gigiair a écrit :L'objection ne me paraît pas recevable
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 ?
Programmer en TeX, TeXpérimental
-
- Utilisateur chevronné
- Messages : 2804
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: Formater les numéros de téléphones à la française: par p
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.
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.
LaTeXien migrateur.
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: Formater les numéros de téléphones à la française: par p
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.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.
-
- Utilisateur chevronné
- Messages : 2804
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: Formater les numéros de téléphones à la française: par p
Je ne vois pas ce qui justifie cette idée, tu peux développer ?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.
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.
LaTeXien migrateur.
Re: Formater les numéros de téléphones à la française: par p
Mais il me semble bien que \, produit une espace fine, certes, mais aussi insécable ?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
B. A.
-
- Administrateur
- Messages : 8058
- Inscription : samedi 28 mai 2005, 14:23
- Statut actuel : Enseignant
- Contact :
Re: Formater les numéros de téléphones à la française: par p
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).
-
- Utilisateur chevronné
- Messages : 2804
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: Formater les numéros de téléphones à la française: par p
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.balf a écrit :Mais il me semble bien que \, produit une espace fine, certes, mais aussi insécable ?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
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.
LaTeXien migrateur.
-
- Utilisateur éprouvé
- Messages : 995
- Inscription : vendredi 12 juin 2009, 22:35
- Statut actuel : Enseignant
- Localisation : Chambéry
- Contact :
Re: Formater les numéros de téléphones à la française: par p
Oui puisque la macro robuste \, est définie à la ligne 1575 parbalf a écrit :Mais il me semble bien que \, produit une espace fine, certes, mais aussi insécable ?
Code : Tout sélectionner
\DeclareRobustCommand{\,}{%
\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi
}
Code : Tout sélectionner
\def\thinspace{\kern .16667em}
Programmer en TeX, TeXpérimental
-
- Utilisateur chevronné
- Messages : 2804
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: Formater les numéros de téléphones à la française: par p
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é.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 !
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.
LaTeXien migrateur.
Re: Formater les numéros de téléphones à la française: par p
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).
Re: Formater les numéros de téléphones à la française: par p
Cela semble extra, ce truc, pour qui en a l'utilité.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).
-
- Utilisateur confirmé
- Messages : 40
- Inscription : mardi 25 octobre 2011, 12:06
- Localisation : Picardie
- Contact :
Re: Formater les numéros de téléphones à la française: par paire
Je reprends cette discussion, puisqu'elle est toujours en ligne et peut encore servir.
Il existe une extension « phonenumbers »:
Il existe une extension « phonenumbers »:
Code : Tout sélectionner
...
\usepackage[country=FR]{phonenumbers}
...
\begin{document}
...
Mon numéro de téléphone est: \phonumber{0123456789}
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)
pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian)
1 % d'inspiration, 99% de transpiration (A.Einstein)
Re: Formater les numéros de téléphones à la française: par paire
Quelle perspicacité !
Re: Formater les numéros de téléphones à la française: par paire
Oui, mais la vivacité a manqué.
-
- Sujets similaires
- Réponses
- Vues
- Dernier message
-
- 2 Réponses
- 587 Vues
-
Dernier message par bulledesavon
-
- 11 Réponses
- 1138 Vues
-
Dernier message par jmd