OdfWeave et tableStyles

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Guillaume Bal
Messages : 130
Enregistré le : 02 Juin 2008, 21:07

OdfWeave et tableStyles

Messagepar Guillaume Bal » 17 Juin 2008, 08:21

Bonjour,

Cela fait plusieurs heures que je lutte avec R et la doc sur le net ne m'aide pas beaucoup.
J'arrive sans problème à créer des tableaux avec odfTable. Je voudrais maintenant changer la taille de police des tableaux directement dans mon script. Je pense que la bonne fonction à utiliser est tableStyles mais je n'arrive pas à mes fins (j'ai même tenté getStyles() et setStyles(style)).
Voilà un exemple de code que j'ai essayé:

@
<<echo=FALSE, results=xml>>=

mat <- matrix(summary(data) ,ncol=38)

matStyles <- tableStyles(mat)
matStyles$ArialNormal$textSize<-"19pt"

odfTable(mat,styles=matStyles)


Quelqu'un pourrait-il m'aider?

Merci

Guillaume Bal
Messages : 130
Enregistré le : 02 Juin 2008, 21:07

Messagepar Guillaume Bal » 18 Juin 2008, 07:26

Vraiment personne?
J'ai réessayé plusieurs fois et ça ne marche pas

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Messagepar François Bonnot » 18 Juin 2008, 14:41

Il se trouve que je travaille avec odfWeave en ce moment...
Supposons que l'on veuille imprimer la matrice mat suivante :

Code : Tout sélectionner

> mat <- matrix(1:80,ncol=8)

Dans le fichier .odf :

Code : Tout sélectionner

<<echo=FALSE, results=xml>>=
odfTable(mat)
@

L'impression se fait en 12pt et nous la voudrions en 19pt
Quel est le style utilisé pour les cases d'un tableau ?

Code : Tout sélectionner

> names(getStyles())
 [1] "paragraph"   "input"       "output"      "table"       "cell"       
 [6] "header"      "cellText"    "headerText"  "bullet"      "figureFrame"
[11] "page"

C'est probablement cellText qui nous intéresse. Donc :

Code : Tout sélectionner

> getStyles()$cellText
[1] "ArialCentered"

ArialCentered est certainement le style utilisé pour remplir les cases d'un tableau.
Mais qu'y a-t-il dans ArialCentered ?

Code : Tout sélectionner

> d <- getStyleDefs()
> names(d$ArialCentered)
[1] "type"            "parentStyleName" "textAlign"       "fontName"       
[5] "fontSize"        "fontType"        "fontColor"

C'est à coup sûr fontSize qui va nous permettre de résoudre notre problème :

Code : Tout sélectionner

> d$ArialCentered$fontSize
[1] "12pt"

Modifions donc ce paramètre

Code : Tout sélectionner

> d$ArialCentered$fontSize <- "19pt"
> setStyleDefs(d)

Et maintenant (dans le fichier .odf)

Code : Tout sélectionner

<<echo=FALSE, results=xml>>=
odfTable(mat)
@

L'impression se fait maintenant en 19pt
Pour revenir à l'état initial :

Code : Tout sélectionner

> d$ArialCentered$fontSize <- "12pt"
> setStyleDefs(d)

Ce code peut être placé directement dans le script. Il y a moyen de passer par tableStyles, cela permet de ne modifier que le style de l'objet à imprimer sans altérer le style général. C'est à la fois plus compliqué et plus puissant.

FB

Guillaume Bal
Messages : 130
Enregistré le : 02 Juin 2008, 21:07

Messagepar Guillaume Bal » 18 Juin 2008, 15:42

Merci beaucoup
J'arrive du coup à modifier d'autres paramètres de mes tableaux sur le même principe


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité