Formations en graphisme libre 2023

Voici les dates des prochaines sessions en inter-entreprises, pour l’année 2023 :

Pour l’instant, elles sont toutes prévues en présentiel. Le lieu n’est pas encore fixé, mais en priorité elles auront lieu :

  • à Paris dans les locaux de Coopaname (vraisemblablement dans le 13e, éventuellement dans le 20e arrondissement) ;
  • à Saint-Sébastien-sur-Loire (périphérie nantaise) dans les locaux de mon partenaire 2i2l.

Cela dépendra de la demande et des inscriptions. Dans la mesure du possible le programme sera personnalisé à chaque session en fonction de vos attentes.

Pour la vidéo le logiciel utilisé sera Shotcut (plus quelques autres éventuellement, cf. description).

Pour la mise en page nous utiliserons la suite libre GIMP, Inkscape et Scribus.

Cependant, il est possible de les organiser à distance (avec un planning différent, il est hors de question d’infliger sept heures de visio dans une même journée !), voire dans un autre lieu d’une autre ville si une organisation locale se dessine.

Il est également possible de me contacter pour une session en intra-entreprise, c’est-à-dire, pour votre structure avec programme personnalisé, adaptés à vos besoins spécifiques.

Coopaname est un organisme de formation certifié Qualiopi pour les actions de formation professionnelle (ainsi que le bilan de compétence, mais ici nous ne sommes pas dans ce cas-là). Si vous préférez passer par 2i2l, sachez qu’ils sont également certifiés Qualiopi.

N’attendez pas le dernier moment pour nous contacter si vous souhaitez mobiliser une prise en charge financière, certains OPCO demandent un mois de délai avant le début de la formation.

Attention, il n’est pas possible de mobiliser votre CPF, ces formations ne sont pas inscrites au Répertoire spécifique.

Pour les demandes de renseignements, voire d’inscription, privilégiez les formulaires présents au niveau de chaque session (cf. liens plus haut).

Des formations sur GIMP, Scribus et Shotcut en juin

Ce mois de juin j’organise trois sessions de formation sur trois thèmes différents : la retouche d’images avec GIMP, la mise en page avec Scribus et le montage vidéo avec Shotcut (et un peu d’OpenCamera).

Ces sessions se déroulent à distance via les plateformes BigBlueButton (visio-conférence) et Moodle (pédagogie) d’Artefacts, dans un souci d’utiliser des outils performants, libres et respectueux de la vie privée des stagiaires (ces deux services sont hébergés en France par notre prestataire Aukfood).

Modalités d’organisation

Cette session se déroule entièrement à distance et comprend :

  • un entretien préalable (par téléphone ou visio-conférence) dont le créneau est à définir avec chaque stagiaire
  • un temps de vérifications techniques (accès à la visio, à la plateforme pédagogique, présentation de la session, installation du ou des logiciels)
  • 9h de présentation et d’échanges synchrones
  • 6h de travail personnel en asynchrone avec disponibilité du formateur
  • 2h en synchrone pour bilan, questions diverses et ultimes démonstrations

Tarif et financement

Chaque session coûte 900 € par stagiaire (pour les 17h). Cette prestation est exonérée de TVA en application de l’article 261 du CGI. Tarifs dégressifs : 1650 € pour deux sessions, 2200 € les trois sessions !

Artefacts est organisme de formation dont l’activité est déclarée sous le numéro 24 45 02783 45 (cet enregistrement ne vaut pas agrément de l’État) et référençable sur Datadock. Vous pouvez donc solliciter votre OPCO pour une prise en charge des frais pédagogiques (via le plan de développement des compétences ou via FNE Formation si votre entreprise a des salariés en activité partielle).

Modalités d’inscription et délai d’accès

L’inscription se fait directement auprès de Dimitri Robert, qui est l’interlocuteur pour le recueil des besoins, l’adaptation et l’animation de l’action de formation, la contractualisation, le suivi administratif et la facturation.

Des délais de l’ordre d’un mois et demi (en cas de prise en charge OPCO) ou une à deux semaines (financement direct) sont à prévoir entre la demande d’inscription et le démarrage du parcours. N’attendez pas le dernier moment !

Formation à la mise en page avec Scribus à Tours (3 mars)

Formation Scribus Tours

Dans votre travail, votre bénévolat associatif, vous avez besoin de réaliser des documents destinés à être imprimés ? Affiche, flyer, brochure, magazine, etc.

Votre abonnement Adobe vous coûte trop cher ? Votre licence n’est plus à jour (ou ne l’a jamais été) ?

Adoptez Scribus, le logiciel libre de mise en page !

Je vous propose deux jours de formation à Tours dans les locaux d’Artefacts les 3 et 5 mars prochains.

Coût de la formation : 800 € (exonéré de TVA).

Artefacts est organisme de formation référençable sur Data-dock.

Inscription et renseignements sur : https://formation-v2.artefacts.coop/session/mise-en-page-de-documents-avec-scribus-03-03-2020-tours/

Perspectives et envies pour 2019 – formation et connaissances

Pour faire suite à mon bilan 2018, voici mes perspectives et envies pour 2019 (et sans doute un peu plus loin, parce que c’est pas les idées qui manquent). Et comme finalement l’article est très long, je le coupe en deux. Voici donc la première partie.

Dix ans déjà

Ce bilan 2018 vient, je l’espère clôturer une période d’errances même si le mot est un peu fort et que je ne regrette rien. Revenons dix ans en arrière lorsque je décide de mettre en œuvre cette idée d’animer de la formation (idée qui a germé en 2005 après mon expérience de rédacteur en chef de Linux Pratique et pendant la rédaction de mon premier livre sur GIMP). Nous étions deux et avons entamé la création d’une entreprise. Ce sera d’abord une association car plus simple (le croyions-nous) et nous permettait de bénéficier de certaines aides (mais qui dit aides, dit contre-parties et orientation du projet d’origine dans une direction pas toujours souhaitée).

Ce fut ensuite une Scop, mais toujours à deux. Je vous le dis aujourd’hui, il ne faut pas monter une Scop à deux : en Scop, vous avez la contrainte de financer deux salaires temps plein tous les mois (comptez-donc au minimum 50000 € de chiffre d’affaire à réaliser sur l’année, à deux). À cinq c’est mieux, ça fait trois personnes de plus pour réaliser les 50000 € minimum. Bien sûr personne n’est payé à plein temps, mais c’est généralement le cas quand on démarre une activité ; sauf, bien sûr, si vous montez une start-up de production de ventilateurs qui levez des fonds auprès de business angels avec l’intention d’être côtés en bourse (mais je parle de créer une activité utile).

La formation ça peut rapporter gros, en tout cas, ça en a la réputation. Mais encore faut-il la vendre et la concrétiser. Donc, comme il faut faire rentrer des sous rapidement, la tentation est grande de proposer d’autres services, surtout lorsque les compétences sont là. Donc dispersion, fatigue et l’on finit par faire mal les choses.

En 2014, lorsque nous avons fermé Libres à Vous et que j’ai intégré Artéfacts, je n’avais plus la contrainte du chiffre d’affaires (un coopérateur a le droit de s’auto-exploiter), mais je me suis tout de même dispersé.

Donc, aujourd’hui je sais ce que je ne veux plus faire et ai une idée plus précise de ce que je veux faire (ce qui ne veut pas dire que c’est figé, mes envies évolueront sans doute, et c’est normal). Par exemple, je ne veux plus faire de site Web. Installer et maintenir des ordinateurs sous Linux, pourquoi pas, mais dans un rayon de dix kilomètres autour de Chinon, du service local donc.

Formation

La formation va rester le cœur de mon activité. D’abord parce que l’an dernier j’ai enfin atteint un volume significatif (33 journées, presque 26000 € de CA, des stagiaires variés et contents). Mais surtout parce que ça me plaît !

J’aime transmettre ce que je sais, même si parfois j’y mets trop d’enthousiasme et donne trop d’informations par rapport à ce qui est humainement assimilable (mais je me soigne). Je reçois aussi : il n’est pas rare que des stagiaires me posent des problèmes auxquels je n’avais jamais pensé. Trouver la solution est très réjouissant et accroît mes connaissances (en plus de celle des stagiaires).

Je voudrais développer des parcours de formation thématiques, sur un domaine d’activité qui font intervenir plusieurs logiciels. C’est déjà le cas sur la mise en pages (GIMP, Inkscape et Scribus) mais cela pourrait être plus précis. Je songe notamment à une formation sur l’édition d’un programme d’événements (ce qui nécessite un peu de développement au niveau de Scribus, une extension qui saurait lire un format tableur et insérer les données dans les bonnes cases de la maquette).

Pratiquant occasionnellement le montage vidéo depuis quelques temps je voudrais également développer des formations sur cette activité. Et le montage fait appel à plusieurs logiciels : l’an dernier j’ai réalisé une bande-annonce pour un festival pour laquelle j’ai travaillé avec GIMP, Inkscape, Synfig Studio, SlowMoVideo et enfin Kdenlive pour le montage final. La bande-son étant un extrait d’une chanson, j’aurais pu utiliser Audacity pour la découper proprement (mais un silence opportun tombait pile poil à la fin de la vidéo).

Sur le plan administratif vous savez peut-être que 2019 marque le début d’une grosse réforme de la formation professionnelle. Nous étudions cette réforme de près afin de réaliser les démarches nécessaires pour continuer à pouvoir proposer de la formation.

Connaissances

Pour bien assumer ces formations, je souhaite toujours étancher ma soif de connaissance. Il y a quelques logiciels que j’aimerais apprendre à utiliser ou approfondir ce que je sais déjà.

Synfig Studio

Ce logiciel d’animation vectorielle semble proposer d’énormes possibilités. Et comme tout ce qui est énorme, difficile d’en faire le tour. J’utilise déjà Synfig Studio, mais je suis encore loin de pouvoir proposer une formation dessus, tout au plus, l’intégrer à une formation de montage vidéo pour créer des titres animés.

En effet, avec Synfig Studio vous pouvez produire du dessin animé (bien qu’il ne dessine pas à votre place) mais aussi faire du motion design (que l’on pourrait nommer en français animation graphique).

Un logiciel méconnu mais prometteur.

Krita

Krita est le concurrent direct de GIMP, sans être son équivalent. Je l’ai utilisé sérieusement une fois, lors d’un atelier organisé par Outils libres alternatifs qui portait sur le storyboard animé (Krita pour les croquis, Blender pour l’animation).

Blender

Vieux rêve que de savoir utiliser Blender. Donc, j’ai déjà utilisé Blender, essentiellement le module de montage vidéo. Même s’il ne fait pas que ça, Blender est un bon logiciel de montage vidéo, la troisième dimension apportant une approche intéressante.

Bien sûr la partie modélisation 3D m’intéresse aussi.

Des outils de scénarisation pour le Web

Je voudrais mettre en page mes cours et vidéos en ligne de manière originale et pas forcément linéaire. Aussi je m’intéresse à des outils comme Sozi (autonome ou extension pour Inkscape) et Twine (outil pour rédiger des histoires du genre « un livre dont vous êtes le héros »). Il me faudra, sans doute, renforcer mes connaissances en Javascript pour maîtriser les interactions notamment sur les vidéos.

Supports de cours

J’essaie de maintenir à la fois des cours écrits (sur GIMP et sur Scribus, tous deux commençant à vieillir sérieusement) et je produis des tutoriels vidéo référencés sur mon blog (avec un petit texte d’accompagnement) et sur ma chaîne Vimeo (bien que je n’ai pas encore pris le temps de ranger tout ce qui s’y trouve, notamment des captures vidéo réalisées en direct pendant certaines formations pour laisser une trace plus vivantes aux stagiaires, donc, sans voix, sans montage). Je voudrais maintenir ces cours à jour et continuer à les diffuser sous licence libre.

Écrit

Au-delà de ces cours centrés sur un logiciel je souhaite rédiger (voire éditer) un cours sur le processus de mise en pages avec les logiciels GIMP, Inkscape, LibreOffice Writer et Scribus. Un cours sur un thème précis, un métier et pas seulement sur un logiciel en particulier.

La question du support se pose évidemment. Le numérique ayant l’avantage de l’évolution facile alors que le papier est figé. Le papier a encore ses adeptes (j’en fait partie). En revanche, je ne suis pas convaincu que le numérique soit plus écologique que le papier.

Jusqu’ici je structurais mes textes avec Asciidoc, qui n’est plus maintenu. Même si je trouvais Markdown plus simpliste, c’est lui que j’ai aujourd’hui adopté. Sa simplicité est surtout un atout : il est possible de convertir du Markdown dans une riche variété de formats (merci Pandoc). Je pourrai donc produire du papier comme du Web. Il y aura quelque chose à ce propos dans la seconde partie de cet article (à paraître bientôt).

Publier un nouveau livre ? Pourquoi pas, mon livre sur GIMP est épuisé depuis longtemps et de toute façon, il a vieilli (publié en juin 2013). Surtout que des collègues sont en train de lancer une maison d’édition. D’ailleurs, ils ont lancé un financement participatif pour les deux premiers livres édités ; ça s’appelle « Carnet de sel » et vous pouvez les soutenir.

Vidéo

J’ai découvert l’année dernière la plateforme Udemy et ai investi dans quelques cours (notamment celui sur Synfig Studio, très clair et bien construit). J’ai aussi visionné bon nombre de tutoriels gratuits sur Youtube, mais la qualité n’est pas toujours au rendez-vous (par exemple, j’ai eu beaucoup de mal à trouver des tutoriels sérieux sur Shotcut).

Lorsque j’enregistre des tutoriels en vidéo, j’ai vraiment à cœur de fournir des explications de qualité, en expliquant aussi le pourquoi je fais telle ou telle action. Cela prend un certain temps pour produire une vidéo de cinq à dix minutes. D’ailleurs, le temps de travail a tendance à être inversement proportionnel à la durée de la vidéo finale. Ce qui est logique car produire une vidéo concise demande de supprimer l’inutile.

Dans mon idée de cours en vidéo je verrais bien une trame plutôt théorique expliquant les fonctionnalités des outils, des boîtes de dialogues avec des exemples simples. Une partie plus concrète avec des exemples plus étoffés dépourvue de théorie serait sans doute plus agréable à suivre que de sans cesse entendre répétées les mêmes choses. Bien sûr il faudrait que chacune des parties renvoie vers l’autre, dans un parcours non linéaire (voir plus haut).

Évidemment tout cela demande du temps et ne pourra se faire que s’il y a financement. Comme je n’imagine pas diffuser ces cours sous une licence privative, mais plutôt une Creative Commons By-SA, il n’y aura pas de droit d’entrée à payer. Restent le financement participatif et la contribution volontaire. Ou peut-être publier le cours par « épisode » (même si ce n’est pas linéaire) en fonction de paliers financiers : ainsi, c’est l’action de groupe qui rendrait disponible le cours à tous et non un droit d’entrée individuel et identique.

À suivre

Dans la seconde partie je cause de développement (au sens programmation) d’outils en cours ou à venir. Toujours sous licence libre.

La photo utilisée pour le bandeau de cet article est l’œuvre de el cajon yacht club, diffusée sous licence CC By 2.0.

Scribus : importer un tableau au format CSV

scribus importer un tableau eu format csv

On ne peut pas dire que les tableaux soient bien gérés dans Scribus, on pourrait même dire que c’est une plaie. Quant à importer un tableau depuis un tableur, ce n’est simplement pas à l’ordre du jour…

Une gestion insatisfaisante

Actuellement (version 1.4) un tableau n’est autre qu’un groupe de cadres de texte. Une fois créé, vous ne pouvez ajuster la taille des lignes et des colonnes, vous ne pouvez appliquer de style sur les cellules. La saisie dans une cellule est rendue complexe par le groupe : il faut double-cliquer en pressant la touche Alt pour modifier le contenu d’une cellule.

La version 1.5 (version de développement de la future version stable) propose un nouvel outil de création de tableaux. Il y a même la possibilité d’appliquer des styles sur les cellules et le tableau, mais le peu de paramètres disponibles actuellement rend cette fonction inutile. De toute manière, toujours pas de possibilité d’importer un tableau, il faut le rédiger dans Scribus.

On trouve des tutoriels évoquant la possibilité d’exporter un tableau sous forme d’image vectorielle depuis un tableur comme LibreOffice Calc. Mais le tableau ainsi inséré n’est pas modifiable, y compris au niveau du style. De plus, impossible d’insérer un tableau qui s’étendrait sur plusieurs pages.

Prendre le taureau par les cornes

J’ai donc tenté de résoudre ce problème en vue d’une formation avec des archéologues, qui insèrent de longs tableaux dans leurs rapports. Je suis parti du script importcsv2table.py fourni avec Scribus qui permet d’importer un tableau au format CSV. Le comportement de ce dernier ne me convenait pas et les questions posées étaient trop simplistes. Par exemple, il ne demande pas le caractère de séparation, ce qui est la base du format CSV.

Le format CSV (pour Comma-separated values) permet de représenter un tableau sous forme de valeurs séparées par des virgules (ou d’autres caractères, absents des valeurs). Chaque ligne du texte correspond à une ligne du tableau et les virgules correspondent aux séparations entre les colonnes.

Le script ainsi produit peut être téléchargé ici : importcsv2table.py. Vous devrez ensuite le copier dans un dossier où vous rangez vos scripts pour Scribus : dans votre profil Scribus vous avez un sous-dossier plugins. Ce n’est qu’un exemple, vous pouvez en choisir un autre, du moment que vous le déclarez dans les préférences de Scribus.

Pour le tutoriel vidéo présenté ci-dessous, j’ai utilisé un grand tableau de données issues du site Etalab qui recense les lieux de tournages de films dans Paris. Je l’ai un peu épuré et n’ai gardé que 7 colonnes et 139 lignes, mais ce n’est qu’un exemple, je voulais un tableau avec beaucoup de lignes.

Voici comment l’utiliser en vidéo.

Préparation

  • Créez un nouveau document avec suffisamment de pages pour accueillir votre tableau (cela peut être ajusté par la suite).
  • Allez dans les Préférences pour déclarer le chemin des plugins. C’est là que vous avez copié le script, il sera ainsi plus facile à retrouver depuis Scribus.
  • Créez un cadre de texte occupant tout l’espace que vous voulez allouer à votre tableau sur la première page.
  • Certaines propriétés de ce cadre seront utilisées pour les cellules (constituées elles-mêmes de cadre de texte)
    • la largeur et la hauteur ;
    • la couleur du filet ;
    • l’épaisseur du filet ;
    • les espaces sur les quatre côtés intérieurs (rembourrage ou padding pour les habitués des feuilles de styles CSS).
  • Assurez-vous que le cadre de texte est bien sélectionné et appelez le script via Script → Démarrer un script.

Utilisez le script

S’ensuit une série de questions (je compte regrouper toutes ces fenêtres en une seule à terme).

  • Choisissez le fichier CSV à importer.
  • Indiquez quel est le délimiteur de colonnes (évitez d’avoir la tabulation comme délimiteur).
  • Indiquez la largeur de chaque colonne : cette fenêtre vous indique combien de colonnes comporte votre tableau ; vous devez donc avoir le même nombre de chiffres. Chaque colonne est représentée par un nombre qui indique la part de largeur qu’elle occupera : ainsi, une colonne identifiée par un 3 sera trois fois plus large qu’une colonne identifiée par un 1. La largeur totale du tableau est celle du cadre de texte initial.
  • Si la première ligne de votre tableau est une ligne de titre, elle sera traitée différemment. Pour l’instant, elle n’est juste pas comptabilisée dans la hauteur totale et une place sera réservée pour elle sur chaque page où s’étend le tableau. On peut imaginer à l’avenir qu’elle aura un style particulier et qu’elle sera automatiquement reproduite sur chaque page.
  • La hauteur des cellules est difficile à appréhender tant que vous n’avez pas défini le style de paragraphe des cellules ni vu le résultat. Laissez cette valeur et ajustez-la à la suite de plusieurs essais. Lorsque le nombre de lignes multiplié par la hauteur de chacun dépasse la hauteur du cadre texte initial (donc limitant), un décalage se produira pour bien séparer visuellement les lignes.
  • Choisissez un style de paragraphe pour le contenu des cellules. Cette fenêtre vous affiche les styles existants. Vous pouvez en recopier un ou donner un nouveau nom. Dans ce cas, un nouveau style sera créé.

Patientez, le script travaille.

Affinez

  • Une fois que le script a fini son travail, vous pouvez constater que chaque ligne est un groupe de cadres de texte (ouvrez la fenêtre Plan du document pour vous en convaincre). Vous pouvez donc déplacer une ligne facilement.
  • Allez dans l’éditeur de styles pour modifier le style nouvellement créé. Vos modifications s’appliquent à l’ensemble des cellules !

Traitez les autres pages

  • Allez sur la page suivante.
  • Sélectionnez toutes les lignes et les grouper.
  • Revenez sur la première page et copier la ligne de titre.
  • Retournez sur la page en cours de traitement et coller la ligne de titre.
  • Sélectionnez les deux éléments (ligne de titre et le groupe des autres lignes)
  • À l’aide de la fenêtre Espacer et aligner, faites coïncider le haut du groupe de lignes avec le bas de la ligne de titre.
  • Recommencez pour les autres pages.

Certes, ce n’est pas encore aussi facile que dans d’autres logiciels, mais ce script permet de faire le travail proprement. À noter qu’il fonctionne toujours dans Scribus 1.5 .Malheureusement, il n’est toujours pas possible d’utiliser les nouveaux tableaux dans un script Python, je lance donc un appel du pied !

Scribus – table des matières avec un script

Scribus est un fabuleux logiciel libre de mise en page (oui, fabuleux, j’assume !) même s’il souffre encore de manques (en passe de disparaître, la prochaine version est encore plus fabuleuse). Par exemple, la création d’une table des matières est lourde et peu pratique. Voir l’article Réaliser une table des matières que j’avais écrit il y a presque quatre ans (et que je remets sur ce blog) et qui n’a, malheureusement, pas pris une ride.

Ayant quelques compétences en programmation et connaissant un peu le format SLA (Scribus Layout), le format de travail de Scribus, je me suis dit qu’on pouvait automatiser la recherche de titres. J’ai donc écrit un script Perl qui extrait tous les titres ayant un style clairement identifié.

Pourquoi Perl et pas Python, le langage de prédilection des extensions de Scribus ? Déjà, je connais mieux Perl que Python et j’avais une contrainte de temps. D’autre part, le format SLA est amené à évoluer d’ici la sortie de Scribus 1.6 de même que le moteur interne de scripts. Enfin, le script que je vous présente là est indépendant de Scribus, vu qu’il lit directement le SLA (qui n’est autre que du XML). Ce script est donc une solution intermédiaire, temporaire. À la sortie quelqu’un (moi peut-être) sera toujours à temps de s’atteler à la tâche (si le mécanisme de table des matières n’a pas été amélioré d’ici-là).

Conditions de base

Lorsque vous réalisez votre maquette, vous devez insérer vos titres dans des cadres de textes séparés du reste et surtout, non liés. Vous devez appliquer un style de paragraphe directement sur le cadre de texte.

Vous pouvez insérer des retours à la ligne (Maj + Entrée), c’est-à-dire, sans changement de paragraphe. Cela peut servir à mieux présenter un titre sur plusieurs lignes. Le script concatène les différentes lignes.

Enfin, vous pouvez utiliser plusieurs styles différents pourvu qu’ils aient une partie du nom commune (c’est le cas dans l’exemple ci-dessous).

Enfin, pour la bonne exécution du script, vous devez avoir installé l’interpréteur Perl (c’est le cas par défaut sous Linux), ainsi que le module XML::DOM.

Le script

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
use utf8;
 
# Chargement du module XML::DOM pour parser du XML
use XML::DOM;
 
# Création de l'objet parser et chargement du fichier XML passé en paramètre
my $parser = new XML::DOM::Parser;
my $doc = $parser->parsefile(shift);
 
# Sélection des éléments de type PAGEOBJECT et calcul de leur nombre
my $frameobject = $doc->getElementsByTagName("PAGEOBJECT");
my $n = $frameobject->getLength;
 
# Une table de hachage pour accueillir la table des matières
my %tdm = ();
 
# Tri des PAGEOBJECT
for (my $i = 0; $i < $n; $i++) { # Sélection du nœud my $node = $frameobject-&gt;item ($i);
 
	# Récupération du style de parapgraphe (PSTYLE)
	my $style = $node->getAttribute ("PSTYLE");
 
	# S'il ne contient pas -TF- on passe au suivant
	next unless ($style =~ m/-TF-/);
 
	# Sinon on récupère le numéro de la page (OwnPage)
	my $pageNum = $node->getAttribute ("OwnPage") + 1; # Attention OwnPage commence à 0
 
	# Ainsi que les sous-éléments de type ITEXT.
	# S'il y a des retours à la ligne (Maj + Entrée) il y a plusieurs ITEXT
	# qu'il nous faut concaténer
	my $itext = $node->getElementsByTagName("ITEXT");
	my $nt = $itext->getLength;
	my $title = "";
	for (my $j = 0; $j < $nt; $j++) { my $t = $itext->item($j);
 
		# Pour une obscure raison, le texte est stocké dans un paramètre CH
		$title .= $t->getAttribute("CH")." ";
	}
 
	# Encodage du texte en UTF-8
	utf8::encode($title);
 
	# Les titres seront automatiquement classés par leur numéro de page
	# Pour cela il faut que ces numéros soient classés dans le bon ordre.
	# On rajoute un zéro pour les numéros inférieurs à 10.
	$pageNum = sprintf("%.2u", $pageNum);
 
	# L'affectation du titre dans la table de hachage trie automatiquement
	# par numéro de page
	$tdm{$pageNum} = $title;
}
 
# Réécriture propre de la table des matières
foreach my $k (sort(keys(%tdm)))
{
	printf("%s\t%u\n", $tdm{$k}, $k);
}

Quelques explications de codage :

  • lignes 1 à 7, en-tête assez classique d’un script Perl : à noter le chargement du module Data::Dumper, indispensable au débug et XML::DOM, indispensable pour la suite ;
  • ligne 11 : la fonction shift récupère automatiquement le premier argument passé en ligne de commande et le supprime, de sorte qu’un nouvel appel à shift donnera le suivant ;
  • ligne 14 : dans le format SLA, les cadres sont des nœuds PAGEOBJECT, c’est donc ceux-là uniquement qu’il faut rechercher ;
  • ligne 27 : on récupère le style de paragraphe (PSTYLE) du cadre ;
  • ligne 30 : si le nom du style ne contient pas la chaîne de caractères recherchée (je veux ici récupérer les styles nommés 1-TF-creer, 2-TF-info-comm, 3-TF-programmer, etc.) on force la fin du tour de boucle (on passe au cadre suivant) ;
  • ligne 33 : sinon, on extrait le numéro de page (attribut OwnPage) en ajoutant 1, la première page ayant le numéro 0 (ah, ces informaticiens 😉 ) ;
  • lignes 38 à 47 : le contenu du cadre de texte se trouve dans des nœuds de type ITEXT : la boucle permet de les mettre bout à bout (ne pas oublier l’ajout d’une espace pour éviter que les mots des différentes lignes ne se touchent (ligne 46)) ;
  • ligne 50 : encodez le titre ainsi généré en UTF-8 pour une bonne gestion des caractères accentués (entre-autres) ;
  • ligne 59 : on copie le titre trouvé dans la table de hachage avec comme clé le numéro de page (ce qui interdit d’avoir deux titres sur la même page, il faudrait pour cela créer un tableau) ;
  • lignes 62 à 66 : la table de hachage est trié suivant ses clés (donc, les numéros de page) et, pour chacune, on affiche le titre suivi du numéro de page séparés par une tabulation.

Créer la table des matières

Passons à l’action. Enregistrez ce script dans un fichier nommé, par exemple, tdm-sla.pl. Ajoutez-lui les droits d’exécution :

chmod +x tdm-sla.pl

Puis exécutez-le en passant en argument votre document Scribus. L’affichage de la table des matières se fait sur la sortie standard, donc, redirigez-la vers un fichier texte.

./tdm-sla.pl document.sla > tdm.txt

Dans Scribus il ne vous reste plus qu’à créer un cadre de texte et insérer ce texte.

Un style pour les entrées de la table

Dernière étape : créer un style de paragraphe pour les entrées de la table des matières. Dans Scribus allez dans le gestionnaire de styles (Édition → Styles) et créez un style nommé TDM (par exemple).

Il faut gérer la tabulation que le script insère entre le titre et le numéro de page. Cliquez sur la ligne graduée en bas pour créer une tabulation. Vous pouvez en saisir une valeur précise dans le champ prévu à cet effet (dans le rectangle vert sur la capture ci-dessous). Vous pouvez également choisir l’alignement du numéro de page (liste déroulante à gauche de la position de la tabulation). Ici, les numéros de page seront centrés.

Gestionnaire de styles Scribus

En personnalisant un peu le script ci-dessus j’ai donc pu extraire plusieurs niveaux de titres et générer automatiquement la table des matières donc voici un extrait ci-dessous. Il s’agit du catalogue de formations d’Artefacts, encore en cours d’élaboration (mais la sortie est imminente).

Table des matières dans le catalogue de formations d'Artefacts

Astuce : si vous souhaitez extraire plusieurs niveaux de titre (donc à partir de cadres de textes de styles différents) il faut d’abord les gérer dans le script. Vous pouvez ajouter un symbole en début de ligne pour distinguer ces différents niveaux. Par exemple, vous ajoutez un dièse devant les titres de rubrique.

Ensuite, dans Scribus, vous pouvez importer votre table des matières comme texte avec filtrage (plutôt que texte simple). Définissez ensuite des filtres comme ceci.

Importer un texte avec filtrage

Scribus – réaliser une table des matières

Créer une table des matières avec Scribus n’est pas aussi intuitif qu’avec un traitement de texte, mais c’est possible. Une fois que l’on a assimilé le fonctionnement, la pratique devient aisée. Voici comment faire.

Note : cet article a été écrit 24 mars 2013, il date donc beaucoup. La technique fonctionne toujours. Cependant, j’ai écrit un script Perl pour générer une table des matières d’une autre façon. En attendant mieux dans une future version de Scribus.

Un cadre pour la table des matières

La table des matières a besoin d’un cadre dédié pour être affichée. Créez un cadre de texte et donnez-lui un nom pertinent (« cadreTDM » par exemple). Pour renommer un cadre, passez par la fenêtre des Propriétés puis l’onglet X, Y, Z ou par la fenêtre Plan du document.

Nom du cadre

Pour le texte contenu dans ce cadre, vous devez également définir un style de paragraphe. Dans un premier temps seul le nom compte, nous l’affinerons par la suite.
Appelons-le « TDM ».

Définir un style de paragraphe

Définir la table des matières

Dans les propriétés du document, vous devez définir un attribut qui reliera la table des matières et les différents cadres porteurs d’une information à y intégrer.

  • Ouvrir Fichier → Réglage du document
  • Sélectionnez l’onglet Réglage du document dans la colonne de gauche.

Définir un attribut dans le document

Toujours dans la fenêtre Réglage du document mais dans l’onglet Table des matières et index nous pouvons maintenant définir la table.

Définir la table des matières

Commencez par lui donner un nom dans le champ juste au-dessus du bouton Ajouter.
Ce dernier l’ajoute à la liste.

Définissez ensuite l’attribut, le cadre de destination et le style de paragraphe avec ceux créés précédemment.

Choisissez également la position du folio (numéro de page). Sachez que le folio sera séparé du titre par une tabulation. Nous exploiterons cette caractéristique via le style de paragraphe.

Ajoutez une entrée dans la table

Sélectionnez un cadre de texte contenant un titre que vous voulez faire apparaître dans la table des matières puis éditez ses attributs (clic droit puis Attributs).

Ajoutez un attribut. Renseignez le nom (« TDM » faisant ainsi le lien avec la table des matières) et la valeur (le titre que vous souhaitez faire apparaître dans la table des matières).

Ajouter une entrée

Faites ainsi pour chacune des entrées que vous souhaitez faire apparaître.

Notez que le cadre porteur de l’attribut n’est pas forcément un cadre de texte.

Note Contrairement à un traitement de texte, la génération automatique d’une table des matières ne se base pas sur les styles de titres, mais sur un attribut fixé au niveau d’un cadre.

Générez la table des matières

Pour générer automatiquement la table des matières dans le cadre « cadreTDM » utilisez le menu Extra → Générer la table des matières. Vérifiez ensuite le résultat sur le cadre « cadreTDM ».

Premier essai de table des matières

Ce cadre de texte reste toutefois modifiable et rien ne vous empêche de rajouter la mention « Table des matières ». Attention, à chaque fois que vous la générez, cette opération efface tout le contenu.

Peaufinez le style « TDM »

Si vous optez pour un folio en fin de ligne dans la table des matières, vous risquez d’être déçu au premier abord.

Deuxième essai, folio à la fin
Il faut donc modifier le style de paragraphe pour forcer les points de tabulation.

Dans les paramètres du style « TDM » créez un point de tabulation à environ un centimètre du bord droit du cadre « cadreTDM » (si votre cadre fait 10 cm de large, placez la tabulation à environ 9 cm). Définissez également ce point comme centré, cela aura pour effet de centrer le texte qui suit, même si le style indique autre chose.

Régler les tabulations

Ce qui, une fois appliqué, produit ceci :

Alignement correct des folios

Initiation à la mise en page avec Scribus

Initation à la mise en page avec Scribus

Dans les formations que je propose d’animer il y a une initiation à la mise en page avec Scribus, logiciel libre de PAO (publication assistée par ordinateur).

Chacune de mes formations fait l’objet d’un support de cours afin de laisser plus que des notes aux stagiaires. Afin de respecter la philosophie du logiciel libre (et la mienne) ces supports sont mis à disposition sous une licence libre (en l’occurrence Creative Commons Attribution – Partage dans les Mêmes Conditions 4.0 International comme le reste de ce site).

Ces supports feront l’objet d’une publication en ligne au fur et à mesure de leur état d’avancement. Voici donc le premier : l’initiation à la mise en page avec Scribus.

N’hésitez pas à commenter (sur la page de contact) et à revenir le consulter ultérieurement, il ne peut que se bonifier avec le temps ! De plus, Scribus évolue (et la prochaine version apportera de substantielles améliorations !), donc le cours évoluera aussi.

Voici la table des matières actuelle :

Pour les coulisses techniques, je rédige mes cours en utilisant la syntaxe Asciidoc. Je peux ensuite générer facilement une version Web en utilisant Bootstrap pour Asciidoc, un environnement permettant une mise en page agréable, moderne et adaptative selon la taille de l’écran (vous pouvez lire ce cours sur votre téléphone).

Scribus : lier des cadres de texte

Dans Scribus, pour insérer du texte vous êtes obligés de créer des cadres de texte au préalable. Lorsque le texte est trop long pour être contenu dans un cadre, on peut lier des cadres de texte ensemble pour que ce dernier coule de l’un à l’autre, en suivant les liens.

J’ai reçu cette question récemment sur le formulaire de contact (n’hésitez pas à poser vos questions).

Comment peut-on lier tous les cadres de texte en même temps (et non un par un) sous Scribus ? L’idée étant de gagner du temps quand on veut transformer en Pdf un bouquin par exemple. Si oui, existe-t-il une procédure qui créée le nombre de cadres de texte nécessaires pour le volume de caractère collés ?

Voici la réponse en vidéo. Prenons comme exemple le livre Contes choisis de la famille des frères Grimm diffusé dans le domaine public par le projet Gutenberg.

La première méthode consiste à créer un document avec l’option Cadres de texte automatique. Dans ce cas, chaque nouvelle page créée le sera avec un cadre de texte lié à celui de la page précédente.

La seconde méthode part du cas d’un document classique et montre comment créer deux cadres de texte et les lier. Puis nous utiliserons la fonction Insérer → Cadres pour créer le nombre souhaité de cadres de texte, liés entre-eux.