Posts Tagged ‘pied de page’

h1

Indenter ses titres et pieds-de-page dans un fichier PDF

août 2, 2009

Comment couper ses titres et ajouter des indentations dans un fichier PDF avec SAS ? La solution deux petits mots-clés -2n et m précédés d’un symbole défini par vous-même auparavant.

Notez que cette syntaxe fonctionne aussi pour les pieds-de-page.

Si le passage à la ligne fonction avec ODS RTF, l’indentation par contre n’est pas prise en compte.

1. Par défaut un titre est sur une seule ligne

Dans l’exemple qui suit, un titre est donné dans une instruction TITLE.

Ce titre est aligné à gauche (J=L entendez par là justify=left).

Pour faciliter la lecture du programme, le titre est écrit sur plusieurs lignes. Mais au final, tout le texte apparaît sans passage à la ligne.

ods listing close;
title j=l
‘SASHELP.CLASS:’
‘Première Variable: Nom’
‘Seconde Variable: Sex’
‘Troisième Variable: Age’;
ods pdf file=‘C:/sasref/indent_title.pdf’;
proc print data=sashelp.class noobs;
run;
ods pdf close;
ods listing;

title_01_default

2. Passer à la ligne avec ODS ESCAPECHAR et ^-2n

A présent, un passage à la ligne est créé avec le mot -2n.

Pour que SAS n’utilise par ce mot comme un texte devant apparaître dans le titre, ce mot est précédent d’un symbole de son choix (ici un chapeau) défini précédemment avec l’instruction ODS ESCAPECHAR.

ods escapechar=‘^’;
ods listing close;
title j=l
‘SASHELP.CLASS:’
‘^-2nPremière Variable: Nom’
^-2nSeconde Variable: Sex’
^-2nTroisième Variable: Age’;
ods pdf file=‘C:/sasref/indent_title.pdf’;
proc print data=sashelp.class noobs;
run;
ods pdf close;
ods listing;

title_02_linebreak

3. Passer à la ligne et indenter le titre avec ODS ESCAPECHAR, ^-2n et ^m

A présent, l’encre ^m est ajoutée en4ème position dans la première ligne. Cela veut dire que tout le texte qui suit est indenté et débutera en position 4 sous la lettre H de SASHELP.CLASS.

ods escapechar=‘^’;
ods listing close;
title j=l
‘SAS^mHELP.CLASS:’
‘^-2nPremière Variable: Nom’
^-2nSeconde Variable: Sex’
^-2nTroisième Variable: Age’;
ods pdf file=‘C:/sasref/indent_title.pdf’;
proc print data=sashelp.class noobs;
run;
ods pdf close;
ods listing;

title_03_indent

Lectures complémentaires

h1

Ajouter les titres et pieds-de-page dans la feuille de calcul du fichier .xls

juillet 9, 2009

Lors de la création d’un fichier .xls au moyen de la syntaxe ODS TAGSETS.EXCELXP sous SAS, le contenu des instructions TITLE et FOOTNOTE est envoyé respectivement dans l’entête et pied-de-page du fichier. Ils ne sont donc visibles qu’à l’impression.

Pour insérer le contenu des instructions TITLE et FOOTNOTE dans la feuille de calcul, il faudra ajouter deux options dans l’instruction ODS TAGSETX.EXCELXP : EMBEDDED_TITLES etEMBEDDED_FOOTNOTES.

1. Le code

Voici le code pour l’exemple. Vous noterez que j’ai rajouté une instruction ODS… juste après les instructions TITLE et FOOTNOTE. Cela permet à SAS de mettre à jour les titres et pieds-de-page qu’il a en mémoire. Cela sera pratique lorsque vous aurez plusieurs feuilles de calculs avec des titres différents. Autrement, vous pouvez ajouter les instructions TITLE et FOOTNOTES avant la première instruction ODS TAGSETS.EXCELXP.

ods listing close;
ods tagsets.excelxp file=‘C:/sasref/class.xls’
options(embedded_titles=‘yes’
embedded_footnotes=‘yes’);

title ‘Titre’;
footnote ‘Pied’;
ods tagsets.excelxp;

proc report data=sashelp.class nowd;
columns name age;
define name/display ‘Nom’;
define age /display ‘Age’;
run;

ods tagsets.excelxp close;
ods listing;

L’option NOWD est propre à un environnement Windows. Cela évite l’ouverture de la fenêtre REPORT

2. Voir le résultat

Résultat ods tagsets.excelxp options embedded_titles embedded_footnotes

3. Enlever les lignes blanches entre les titres/pieds-de-page et la table

Pour empêcher l’insertion d’une ligne entre le(s) titre(s) et la table, le(s) pied(s)-de-page et la table, il faut faire appel à l’option SKIP_SPACE=.

Avant d’aller plus loin, il faut noter que

  • la ligne d’espace entre le titre est la table est lié au TITRE et
  • la ligne entre la table et le pied-de-page est lié à la TABLE et non au pied-de-page.

Cette option de l’instruction ODS TAGSETS.EXCELXP est composée de 5 nombres.

  • Le premier nombre fait référence à la TABLE
  • Le 3ème nombre est lié au TITRE
  • Le 4ème nombre fait référence au PIED-DE-PAGE.

Par défaut SKIP_SPACE=’1,0,1,1,1′.

Pour ôter les lignes séparant la table des titres et pieds-de-page, on aura : SKIP_SPACE=’0,0,0,1,1′. On enlevera la ligne après la table avec le premier zéro et la ligne après le titre avec le troisième zéro.

01_xls_title_extra

A venir

Je vous propose de découvrir dans les deux articles à venir des compléments sur les titres et pieds-de-page avec ODS TAGSETS.EXCELXP :

  • Créer un style pour personnaliser les couleurs, polices des titres/pieds-de-page avec un PROC TEMPLATE.
  • Utiliser un titre plus grand que la largeur donnée par les colonnes du tableau

Lectures complémentaires

h1

En-tête et pied de page avec TAGSETS.EXCELXP

juin 1, 2009

La syntaxe de l’ODS TAGSETS.EXCELXP permet de créer sous SAS un fichier lisible par Excel. Pour vous familiariser avec cette syntaxe, je vous invite à lire les articles : Mes premiers pas avec ODS TAGSETS.EXCELXP, partie 1, partie 2 et partie 3.

Deux options servent à ajouter une en-tête et un pied de page au fichier à imprimer : print_header et print_footer.

Sous Excel 2003, cela correspond aux écrans suivants :

excelp_header

excelp_footer

1. La syntaxe de base

Ici le fichier HEADER_FOOTER.xls est créé au moyen de l’instruction ODS TAGSETS.EXCELXP. La feuille de calcul s’appelle « Exemple ». Les options PRINT_HEADER et PRINT_FOOTER sont encore à définir.

Le fichier contient les informations de la table CLASS contenue dans la bibliothèque SASHELP.

ods listing close;
ods tagsets.excelxp file=‘c:/sasref/header_footer.xls’
options(sheet_name=‘Exemple’
print_header=‘à définir’
print_footer=‘à définir’);
proc print data=sashelp.class;
run;
ods tagsets.excelxp close;
ods listing;

ODS LISTING : L’instruction ODS LISTING CLOSE, en début de programme, stoppe la création d’une sortie dans la fenêtre OUTPUT. L’instruction ODS LISTING réactive la destination LISTING.

Comme la syntaxe de PRINT_HEADER est la même que celle de PRINT_FOOTER, nous nous concentrons ici sur un seul d’entre eux dans les explications qui suivent : PRINT_FOOTER.

2. Avec la version 2003 d’Excel

Alignement : par défaut le texte est centré.

  • &L : Aligner à gauche (left)
  • &C : Centrer (center)
  • &R : Aligner à droite (right)

Passage à la ligne

  • & #13; : Passer à la ligne (ne pas mettre d’espace entre & et #)

Le nom du fichier et de la feuille de calcul

  • &Z : chemin d’accès au fichier
  • &F : nom du fichier
  • &A : nom de la feuille de calcul

Date et heure

  • &D : date
  • &T : heure

Police de styles

  • &"ma police" mon texte :  introduit la police (Century Gothic, gras, italique ici)
  • &12 :  introduit une taille du texte (12pt ici)
  • & : clos la zone concernée par la police de styles

Le numéro de page

  • &P : numéro de la page
  • &N : nombre total de pages

Exemple : dans l’exemple qui suit, deux lignes de texte à gauche, une ligne au milieu et une à droite.

  • A gauche se trouve le chemin complet d’accès au fichier ainsi que le nom de la feuille de calcul  (C:/sasref/header_footer.xls, Exemple)
  • Toujours à gauche, sur la deuxième ligne est ajouté la date et l’heure
  • Au centre, est noté http://www.sasreference.fr en gras, italique avec un style Century Gothic de taille 12.
  • A droite, est ajouté le numéro de la page et le nombre total de pages (1/1).

&L&Z&F.xls, &A
& #13;&D&T
&C&"Century Gothic,Bold Italic"&12www.sasreference.fr&
&R&P/&N

3. Avec la version d’Excel 2007

Alignement

  • &L : aligner à gauche
  • &R : aligner à droite
  • Le texte à centrer est mis en premier car le texte est centré par défaut.

Passage à la ligne

  • & #13; (comme avec Excel 2003)

Le nom du fichier et de la feuille de calcul

  • &P : chemin d’accès au fichier
  • &N : nom du fichier
  • &B : nom de la feuille de calcul

Date et heure

  • &D : date
  • &U<7span> : heure

Police de style (comme avec Excel 2003)

  • &amp;&quot;….&quot; :  introduit la police (Century Gothic, gras, italique ici)
  • &amp;12 :  introduit une taille du texte (12pt ici)
  • &amp; : clos la zone concernée

Vous pouvez aussi utiliser simplement &F pour mettre un texte en gras.

Le numéro de page

  • &S : numéro de la page
  • &A : nombre total de pages

Exemple :

  • &Fwww.sasreference.fr
  • &L&P&N.xls, &B
  • & #13;&D &U
  • &R&S/&A

Conclusion

La syntaxe reste difficilement mémorisable. Mais une fois celle-ci créée, il est possible de faire des copier/coller sans soucis particulier.

Pour chaque nouvelle feuille de calcul, l’option doit être définie. Ici, aucune proposition n’est faite pour définir de manière globale les en-têtes et pieds de page.

La syntaxe pour ajouter une image n’est pas donnée ici.

Le plus gros problème reste que la syntaxe varie selon la version d’Excel utilisée comme le confirme la note suivante de l’aide en ligne du tagset ExcelXP pour PRINT_HEADER ne donne pas toujours la bonne syntaxe.