Comment adapter les tableaux à la largeur de la colonne de texte dans framemaker

Adobe framemaker Domande frequenti

comment adapter les tableaux à la largeur de la colonne de texte dans framemaker?

À propos du script : Voici un script simple qui met à l'échelle proportionnellement un tableau pour l'adapter à la colonne de texte qui le contient. Ce script fonctionne avec le tableau actuel mais peut être facilement étendu pour fonctionner avec tous les tableaux d'un document ou d'un livre.

Obtenir les données : Cliquez votre curseur dans un tableau qui doit être mis à l'échelle. Vous devrez collecter certaines informations de base afin de mettre le tableau à l'échelle correctement. Voici le code commenté pour définir les données nécessaires dans des variables.

// Le tableau sélectionné.
Set vTbl = SelectedTbl;
// La largeur actuelle du tableau.
Set vTblWidth = vTbl.TblWidth;
// La largeur de la colonne contenant le tableau.
Set vColWidth = vTbl.TextLoc.Object.InTextObj.Width;


La variable vColWidth est la largeur de la colonne dans un bloc de texte à plusieurs colonnes. Si le bloc de texte n'a qu'une colonne, la largeur de la colonne est égale à la largeur du bloc de texte. Si vous avez plusieurs colonnes, mais souhaitez mettre le tableau à l'échelle à la largeur du bloc de texte, utilisez les lignes suivantes à la place des deux dernières lignes ci-dessus.

// La largeur du bloc de texte contenant le tableau.
Set vColWidth = vTbl.TextLoc.Object.InTextFrame.Width;


Principaletenant, le script peut faire quelques calculs pour déterminer combien mettre le tableau à l'échelle.

// Divisez la largeur de la colonne par la largeur du tableau.
Set vScaleFactor = vColWidth / vTblWidth;



Comment mettre le tableau à l'échelle ?

La propriété TblWidth du tableau est en lecture seule, donc vous ne pouvez pas l'utiliser pour mettre le tableau à l'échelle.

// Cela ne fonctionnera pas.
Set vTbl.TblWidth = vTblWidth * vScaleFactor;


À la place, vous devez modifier la largeur de chaque colonne individuelle du tableau. Ces largeurs sont stockées dans une liste de mesures appelée TblColWidths.

// Définissez une variable pour les largeurs des colonnes du tableau.
Set vWidths = vTbl.TblColWidths;


Une liste de mesures est une liste de valeurs de mesure. Dans ce cas, il y a un membre de la liste pour chaque colonne du tableau. Si le tableau a cinq colonnes, la liste TblColWidth contiendra cinq membres.
La clé du script est de boucler dans la liste des mesures, multiplier chacune par vScaleFactor et remettre la nouvelle valeur dans la liste.

// Bouclez dans la liste et calculez chaque
// nouvelle largeur de colonne du tableau.
Loop While(vCounter <= vWidths.Count) LoopVar(vCounter)
Init(1) Incr(1)
Get Member Number(vCounter) From(vWidths) NewVar(vWidth);
Set vNewWidth = vWidth * vScaleFactor;
Replace Member Number(vCounter) In(vWidths) With(vNewWidth);
EndLoop


La variable vCounter s'incrémentera de 1 (Incr(1)) à partir de 1 (Init(1)) jusqu'au nombre de membres dans vWidths (vWidths.Count). Chaque membre sera multiplié par le facteur d'échelle, et le membre sera remplacé par la nouvelle valeur.
Votre variable MetricList vWidths contient maintenant les largeurs correctes pour mettre le tableau à l'échelle à la largeur de la colonne. La seule chose qui reste à faire est d'assigner les nouvelles valeurs au tableau.
Set vTbl.TblColWidths = vWidths;


Comments