Impossible ?

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.

Impossible ?

Messagepar fadila » Mardi 09 Janvier 2007, 19:44

Bonjour
Je voudrais faire une commande qui aurait pour argument un mot ou une phrase et qui remplacerait chaque lettre de ce mot ou de cette phrase par un caractère particulier (un tiret par exemple). Ceci est-il réalisable ? quelqu'un a-t-il une idée sur la façon d'écrire cette commande ?
Merci
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Publicité

Messagepar la main gauche » Mercredi 10 Janvier 2007, 09:28

Est-ce que ça fait ce que tu veux ?

Code: Tout sélectionner
\makeatletter

\def\replace@A#1{\futurelet\replace@S\relax}
\futurelet\replace@T\replace@A * \relax

\def\replace#1\by#2{%
  \begingroup
  \toks0={#2}%   Texte de remplacement
  \toks1={}%   Texte traité
  \toks2={ }%   Une espace
  \def\@{The STOP tab}%
  \replace@A#1\@
  \the\toks1\relax
  \endgroup
}


\def\replace@A{\futurelet\replace@T\replace@B}

\def\replace@B{%
  \let\next\replace@C
  \ifx\replace@T\replace@S
    \let\next\replace@D
  \fi
  \ifx\replace@T\@
    \let\next\replace@E
  \fi
  \next
}

\def\replace@D#1{%
  \edef\next{\toks1={\the\toks1\relax\the\toks2\relax}}%
  \next
  \replace@A#1%
}

\def\replace@C#1{%
  \edef\next{\toks1={\the\toks1\relax\the\toks0\relax}}%
  \next
  \replace@A
}

\def\replace@E#1{%
  \relax 
}

\makeatother


\replace{Quelle joie de vivre dans un monde sans prophète!}\by X

\replace{Quelle joie de vivre dans un monde sans prophète!}\by{{-}}
la Main Gauche
la main gauche
Méga-utilisateur
 
Messages: 274
Inscription: Jeudi 30 Mars 2006, 07:44
Localisation: selon l'idéal de la liberté

Messagepar fadila » Mercredi 10 Janvier 2007, 15:12

merci la main gauche; c'est une chose que je n'aurai jamais pu trouver seul; un petit bonus si tu veux bien; est-ce qu'on peut remplacer chaque caractere par 2 tirets par exemple ? J'ai essayé en mettant {--} au lieu de {-] dans la ligne:
\replace{Quelle joie de vivre dans un monde sans prophète!}\by{{-}}
Mais ca ne me donne pas du tout le resultat ecompté. Aurais-tu une idée ?
Merci
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Messagepar la main gauche » Mercredi 10 Janvier 2007, 15:55

C'est parceque deux tirets consécutifs sont remplacés par un caractère avec un tiret plus long que le tiret ordinaire, pour éviter ce comportement on peut écrire
Code: Tout sélectionner
\replace{Quelle joie de vivre dans un monde sans prophète!}\by{{-}{-}}
la Main Gauche
la main gauche
Méga-utilisateur
 
Messages: 274
Inscription: Jeudi 30 Mars 2006, 07:44
Localisation: selon l'idéal de la liberté

Messagepar fadila » Mercredi 10 Janvier 2007, 16:26

bonjour
La main gauche merci beaucoup; en plus je trouve que tu as très bien choisi la phrase à remplacer.
A bientot
fadila
Kilo-utilisateur
 
Messages: 213
Inscription: Samedi 12 Août 2006, 09:02
Localisation: Nantes

Messagepar jeans » Mercredi 10 Janvier 2007, 22:26

:worthy: :worthy: :worthy:
De plus en plus impressionant La main gauche.
Ton CAP latex tu l'as eu du premier coup au moins?
On en a encore pour 6 mois à essayer de comprendre ce code.
Au boulot tout le monde.
jeans
Déca-utilisateur
 
Messages: 40
Inscription: Vendredi 24 Novembre 2006, 14:44

Messagepar rebouxo » Mercredi 10 Janvier 2007, 23:18

Non très cher jeans, la main gauche tente de devenir gourou de TeX. Il doit être en train de bidouiller l'algo de sorti des paragraphes de TeX.
Moi, j'ai le CAP LaTeX, j'essaye désépément de passer le BEP, mais jai beaucoup de mal :D :D :D :D

Olivier
rebouxo
Modérateur
 
Messages: 6915
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Messagepar la main gauche » Jeudi 11 Janvier 2007, 09:28

fadila a écrit:La main gauche merci beaucoup; en plus je trouve que tu as très bien choisi la phrase à remplacer.
A bientot


Avec plaisir ;)
la Main Gauche
la main gauche
Méga-utilisateur
 
Messages: 274
Inscription: Jeudi 30 Mars 2006, 07:44
Localisation: selon l'idéal de la liberté

Messagepar jeans » Vendredi 19 Janvier 2007, 10:24

Et si on ne voulait pas remplacer toute la phrase mais une lettre à chaque fois qu'elle apparaît, c'est possible?
Et si on ne voulait pas remplacer toute la phrase mais un mot à chaque fois qu'il apparaît, c'est possible?
Ce n'est pas que j'ai besoin de ça mais je découvre, et je trouve de plus en plus impressionnant ce qu'on peut faire avec Tex.
Et pour certains ici il me semble que tout est possible.
jeans
Déca-utilisateur
 
Messages: 40
Inscription: Vendredi 24 Novembre 2006, 14:44

Messagepar la main gauche » Lundi 22 Janvier 2007, 13:52

En TeX tout est possible, mais pas forcément facile à réaliser. J'ai ouï dire que des gens ont écrit un assembleur en TeX, un programme qui traduit un fichier écrit en langage machine en fichier binaire qui peut être chargé en mémoire et éxécuté par un processeur. Je n'ai pas vérifié, mais cela est du domaine du possible.

Si quelqu'un a beaucoup de temps à perdre, il peut écrire un interprèteur LISP ou SCHEME en TeX, pouquoi pas.

Pour ce que tu veux faire, oui c'est possible de le faire en TeX, mais passé une certaine complexité il est plus facile de passer par un préoprocesseur. Imagine que tu as écrit un programme `pptex' qui lit un fichier PPTEX et écrit un fichier TEX en recopiant le fichier sans modification, sauf pour les lignes figurant entre des commentaires
Code: Tout sélectionner
% BEGIN PPTEX change('i','-')
Religions, superstitions: je suis athée !
% END PPTEX


où les 'i' seraient transformés en tirets. Comme les fichiers TEX sont des fichiers de texte ordinaire, il est très facile d'écrire un programme `pptex' faisant ce travail, par exemple pour PERL pour AWK, en C ou que sais-je ! (très facile si on sait programmer bien-sûr).

C'est possible de le faire en TeX, mais ce n'est pas forcéement la solution la plus efficace.
la Main Gauche
la main gauche
Méga-utilisateur
 
Messages: 274
Inscription: Jeudi 30 Mars 2006, 07:44
Localisation: selon l'idéal de la liberté

Messagepar jeans » Lundi 22 Janvier 2007, 15:23

Message reçu, merci.
jeans
Déca-utilisateur
 
Messages: 40
Inscription: Vendredi 24 Novembre 2006, 14:44


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Magpie [Crawler] et 9 invités