[Résolu][Writer] Changer espacement formule

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Carole21
Fraîchement OOthentifié
Messages : 6
Inscription : 06 août 2023 11:17

[Résolu][Writer] Changer espacement formule

Message par Carole21 »


La modération vous a écrit: Suite de ce sujet

Bonjour,
Je souhaite modifier des formules dans des documents que j'ai déjà tapés pour augmenter l'espacement.
Comme il y en a un très grand nombre j'ai pensé que je pouvais adapter la macro que j'avais trouvée sur internet qui me permettait déjà de changer les polices et les tailles de police. J'ai cherché, fait des essais mais sans succès.
Merci.

Code : Tout sélectionner

Sub ChangeFormatFormule
oCurrentController = ThisComponent.getCurrentController()
oTextDocument = oCurrentController.Model
oEmbeddedObjects = oTextDocument.EmbeddedObjects
nEndIndex = oEmbeddedObjects.Count-1
for nIndex=0 to nEndIndex
oMathObject = oEmbeddedObjects.getByIndex(nIndex)
oModel = oMathObject.Model
if (not isNull(oModel)) then
if(not isEmpty(oModel)) then
if oModel.supportsService("com.sun.star.formula.FormulaProperties") then
' ou if oMathObject.CLSID = "078B7ABA-54FC-457F-8551-6147e776a997" then
oModel.BaseFontHeight = 14

policeCommune= "Liberation Serif"
' Variables
oModel.FontNameVariables= policeCommune
oModel.FontVariablesIsItalic=true
oModel.FontVariablesIsBold=false
' Fonctions
oModel.FontNameFunctions = policeCommune
oModel.FontFunctionsIsItalic=false
oModel.FontFunctionsIsBold=false
' Nombres
oModel.FontNameNumbers= "Arial"
oModel.FontNumbersIsItalic=false
oModel.FontNumbersIsBold=false
' Texte
oModel.FontNameText= "Arial"
oModel.FontTextIsItalic=false
oModel.FontTextIsBold=false
' Mise à jour
oXCOEO = oMathObject.ExtendedControlOverEmbeddedObject
oXCOEO.update()
endif ' fin si formule
endif ' fin si pas vide
endif ' fin si pas null
next nIndex
ThisComponent.reformat() ' Met à jour tous les éléments du document
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Carole21 le 07 août 2023 11:20, modifié 2 fois.
Libre office 7.4 sous Windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25977
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Changer espacement formule

Message par Dude »

Salut,

Comme d'habitude...
Image
Comment joindre un fichier au format ODT
Pense également à dépersonnaliser le fichier joint.

Et précise mieux ce que tu appelles l'espacement d'une formule.
Car ton code insère un objet OLE Math et cela se règle donc plutôt via les styles.
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

Re: [Writer] Changer espacement formule

Message par ddorange »

Bonjour,

La solution est assez simple. Comment faire pour trouver ?
1) Ecrire une formule par exemple {2}over{3}+{1}over{2}
2) Editer la formule et modifier Format -> Espacement en 87 par exemple.
La formule change immédiatement d'allure.
3) Installer Xray
4) Modifier votre code de la sorte

Code : Tout sélectionner

                 oModel.FontTextIsBold=false
		Xray oModel			
		oXCOEO = oMathObject.ExtendedControlOverEmbeddedObject
5) C'est la propriété RelativeSpacing qui est passée à 87 et qui donc doit être modifiée.
6) Remplacer Xray oModel par oModel.RelativeSpacing = 100 par exemple.

Bien cordialement.
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Carole21
Fraîchement OOthentifié
Messages : 6
Inscription : 06 août 2023 11:17

Re: [Writer] Changer espacement formule

Message par Carole21 »

J'ai ajouté mon fichier.
Par contre je ne vois pas comment être plus précise, le nom de réglage dans la formule est "Espacement" (voir capture d'écran du réglage). Je ne pense pas que ce soit dans les styles, je ne parle pas d'espacement avec mon texte mais bien de l'espacement dans la formule elle même.
Merci pour ta réponse ddorange, j'ai voulu tester mais j'ai cherché sur internet et je ne trouve pas où télécharger Xray.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 7.4 sous Windows 11
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

Re: [Writer] Changer espacement formule

Message par ddorange »

Juste au dessus !!
Xray 6.0
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Carole21
Fraîchement OOthentifié
Messages : 6
Inscription : 06 août 2023 11:17

Re: [Writer] Changer espacement formule

Message par Carole21 »

Merci beaucoup pour tout, ça fonctionne !
Libre office 7.4 sous Windows 11