je besoin d'une macro qui extrait des paires de nombre d'une chaîne qui ressemble à ceci:LATEX: Utilisez des caractères dans une chaîne
n1-m1,n2-m2,n3-m3,n4-m4 (it could be longer)
n1, m1, n2, m2, ... sont des nombres de 0 - 15. Comment puis-je obtenir les paires (n1, m1) et (n2, m2), (n3, m3), etc. dans ma macro? J'aurai besoin d'utiliser chaque paire une fois, après quoi je peux, si nécessaire, ne pas tenir compte de la paire.
En supposant que chaque chiffre est un nombre à 2 chiffres (pas une chose élégante de le faire), et le dépeçage d'un code que je trouve par Debilski dans ce forum, j'ai réussi à obtenir la première paire procédant comme suit:
\documentclass[11pt]{article}
\def\macroGetPairs #1{\getPairs#1.\wholeString}
\def\getPairs#1#2-#3#4,#5\wholeString {
\if#1.%
\else
% Test if pair was successfully extracted
Got pair (#1#2,#3#4). Still left: #5\\
% Begin recursion
%\takeTheRest#5\ofTheString
\fi}
\def\takeTheRest#1\ofTheString\fi
{\fi \getPairs#1\wholeString}
\begin{document}
\macroGetPairs{10-43,40-51,60-73,83-97}
\end{document}
Cependant, je ne sais pas comment obtenir la récursivité qui fonctionne pour moi pour obtenir le reste des paires. Je pensais que simplement décommentant la ligne
%\takeTheRest#5\ofTheString
devrait le faire, mais cela ne fonctionne pas. Notez que l'appel de test de la macro est:
\macroGetPairs{10-43,40-51,60-73,83-97}
Des suggestions? Merci beaucoup,
ERM
Merci beaucoup. Cela a du sens. Merci beaucoup. Je suis en train d'apprendre à jouer avec les capacités de programmation de LaTeX et je m'amuse, mais tout ce que je fais est d'utiliser des exemples sur le web, donc tout ce que je peux faire est d'inférer des choses, pas vraiment les apprendre. Je continuerai à poster des questions à mesure que je les aurai. Encore une fois, merci! – ERM