Limiter la largeur d'un texte

Tout ce qui concerne le langage Asymptote. Ce langage est supporté sur le forum via les balises asy.

Modérateur : gdm_asy

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

[Résolu] Limiter la largeur d'un texte

Message par cerise »

Bonjour,

en faisant un calendrier sur lequel je peux noter des anniversaires ou événements, je suis amenée à écrire des textes dans des cases assez étroites.
J'ai d'abord fait mes calendriers "à la main", et si le texte était trop large, j'ajustais à la main avec un xscale :

Code : Tout sélectionner

label(xscale(x_scale)*nom,position,pen);
Mais j'ai ensuite programmé un formulaire web pour pouvoir générer le calendrier automatiquement, et là je me trouve embêtée pour pouvoir ajuster la largeur du texte... Ma question est donc :
- peut-on fixer la largeur d'un label (je voudrais modifier juste la largeur et pas la hauteur, donc modifier les proportions au besoin) ?
- ou alors récupérer la largeur d'un label pour pouvoir calculer le facteur x_scale en fonction de la largeur que je veux obtenir ?

Question subsidiaire pour des textes plus longs et en plusieurs mots : peut-on faire en sorte d'aller à la ligne automatiquement dans un label ?

Toute suggestion sera la bienvenue :)
Dernière modification par cerise le samedi 21 janvier 2017, 19:07, modifié 1 fois.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Limiter la largeur d'un texte

Message par OG »

Bonsoir

Je ne crois pas que la fonction Label puisse faire cela automatiquement (ça ne semble pas être une option).
On peut tout de même récupérer la longueur d'une étiquette en créant une "frame" contenant cette étiquette et utiliser min(f) et max(f). On obtient alors la longueur de l'étiquette en bp (ou pt). Là tu peux jouer et "ajuster"
automatiquement ton étiquette quand tu la traces. Voici un exemple

8128fbae51a9eed35cb7b7a01f3a8556900ed5a1.svg
Ce n'est peut-être pas exacte (bp ou pt, marge ?), mais cela doit pouvoir aider. Après il faut automatiser.

Pour la question subsidiaire, il faut se tourner vers LaTeX avec la commande \parbox je pense.

O.G.

cerise
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 447
Inscription : mercredi 08 juin 2005, 18:03

Re: Limiter la largeur d'un texte

Message par cerise »

Merci pour ta réponse ! :)
Je regarde ça attentivement dès que j'ai le temps !
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry