IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation (La)TeX avancée Discussion :

Ecarter les lettres d'un mot pour qu'il prenne une certaine taille


Sujet :

Programmation (La)TeX avancée

  1. #1
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut Ecarter les lettres d'un mot pour qu'il prenne une certaine taille
    Bonjour.

    Je suis en train de faire des "fancy titles" avec tikz, et je suis confronté au problème suivant. J'aimerai créer une commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \spreadletters{myword}{length}
    qui prenne en argument un mot et une taille et qui s'arrange pour introduire un spacing entre chaque lettre du mot de façon à ce que le mot prenne la taille désirée (cela ne doit pas affecter la taille de la police). Je ne veux pas introduire de spacing "externe": c'est à dire que si je spécifie \spreadletters{Hello}{4cm} alors la distance séparant l'extrémité gauche du H et l'extrémité droite du o doit être de 4cm.

    Je n'ai aucune idée de comment faire cela....

    Merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut
    L'utilisation du package microtype permet d'espacer les lettres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage[babel=true,tracking=true]{microtype}
    \begin{document}
    {\SetTracking{ encoding=*}{400}%
    ||\textls{les lettres sont écartés}||}
     
    \textsl{Les lettres sont redevenus normaux}
    \end{document}

  3. #3
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut
    Merci pour ce premier élément de réponse, mais même si je sais écarter les lettres, ça ne signifie pas que je sais comment les écarter pour qu'un mot fasse une certaine longueur. Y aurait-il possibilité d'utiliser microtype pour écrire ma fonction \spreadletters ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je crois qu'il faut prendre les lettres une par une, les mettre dans une boite de longueur fixée, et les afficher en mettant entre chacune un remplisseur.
    Pour cela, j'ai utiliser le package xstring pour prendre les caractères un par un et calculer la longueur du texte, et au package pgffor pour faire un boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[francais]{babel}
    \usepackage{xstring,pgffor}
    \newcommand\spreadletters[2]{%
    	\makebox[#2]{% fait une boite de longueur "#2"
    	\StrLen{#1}[\longueurtexte]% calcule la longueur du texte
    	\StrChar{#1}{1}% affiche le premier caractère
    	\foreach\position in{2,...,\longueurtexte}% pour les autres :
    		{\hfill% affiche un remplisseur
    		\StrChar{#1}{\position}}% et le caractère
    		}%
    }
    \begin{document}
    ||\spreadletters{Lettres espacées}{10 cm}||
     
    ||\spreadletters{Lettres espacées}{6 cm}||
    \end{document}

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/09/2013, 15h18
  2. Réponses: 2
    Dernier message: 20/10/2012, 16h44
  3. Décaler les lettres d'un mot dans l'alphabet
    Par realtux dans le forum Langage
    Réponses: 9
    Dernier message: 16/04/2009, 00h29
  4. mélanger les lettres d'un mot
    Par isa150183 dans le forum Langage
    Réponses: 3
    Dernier message: 07/03/2007, 18h31
  5. [débutant] classer les lettres d'un mot
    Par capliteon_07 dans le forum Langage
    Réponses: 5
    Dernier message: 02/11/2006, 19h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo