Sondage photo avec Framadate et Framapic

Vous connaissez peut-être Framadate, le premier service en ligne lancé par l’association Framasoft (aujourd’hui bien connue pour proposer des alternatives aux services en ligne qui se nourrissent de vos données privées). Framadate vous propose de créer des sondages pour convenir d’une date au sein d’un groupe de personnes (c’est une alternative à Doodle). Mais Framadate propose aussi de créer un sondage simple. Ici, nous allons créer un sondage photo : vous soumettez une galerie de photos au vote.

Comme Framadate ne peut stocker de photos, nous allons utiliser Framapic, un autre service de Framasoft, dédié au stockage temporaire d’images.

Voici comment faire en vidéo, avec en prime un aperçu des fonctions de Framapic.

Culture et logiciels libres sont-ils des biens communs ?

Le 18 septembre dernier le mouvement Utopia organisait une soirée sur les biens communs intitulée « Communs pour tous et tous pour les communs ? ». Aux côtés de Pierre Crétois, docteur en philosophie et Isabelle Attard, ancienne députée qui s’est notamment battue pour une reconnaissance du domaine public, j’ai été invité à parler des logiciels libres, en quoi ce sont des biens communs.

Isabelle et moi-même avons largement évoqué la culture, la culture libre, le domaine public et les dérives du droit d’auteur (et des pistes pour le hacker), les atteintes d’entreprises et de l’État envers le domaine public.

L’intervention d’Isabelle Attard débute à 41:35 et celle de Dimitri Robert à 1:03:35.

Conférence : mille et une façons de détourer une image avec GIMP

Mille et une façon de détourer une image avec GIMP

Début juillet avaient lieu les rencontres mondiales du logiciel libre à Saint-Étienne. Et comme annoncé, j’y animais une conférence sobrement intitulée « mille et une façons de détourer une image avec GIMP ». C’est peut-être un poil exagéré, mais j’ai tout de même réussit à en montrer sept.

Pour moi le détourage est une activité incontournable d’un logiciel de retouche d’images comme GIMP. En tout cas, je le pratique abondamment pour les affiches et autres œuvres imprimées que je réalise. Autant le dire tout de suite, il n’y a pas d’outil miracle pour détourer : tout au plus, des outils qui vont vous mâcher le travail. En général je finis le travail avec un masque de calque.

Dans cette conférence, je montre, assez rapidement certes, les deux outils de base que j’utilise : les ciseaux intelligents et l’extraction de premier plan. Beaucoup d’utilisateurs de PhotoShop ne jurent que par la plume (outil Chemin dans GIMP), mais je ne suis pas à l’aise avec cette technique (peut-être l’outil Chemin est-il moins évolué dans GIMP). Rapidement je passe au masque pour fignoler le détourage au pinceau (je peins en noir ou blanc directement sur le masque).

Les autres techniques montrées reposent sur une dégradation de l’image afin d’augmenter le contraste entre l’élément à détourer et le reste, soit pour en faire une sélection, soit un masque, ce qui revient au même (techniquement le masque comme la sélection sont des images en niveaux de gris, mais j’y reviendrai plus tard). Parmi les techniques originales, j’utilise la désaturation, la décomposition en RVB ou en TSV, tout cela suivie d’une augmentation de contraste avec l’outil Niveaux (utilisez les Courbes si vous voulez plus de précision encore). Pour l’une des photos j’utilise un filtre de détection des contours : en effet, les sujets à détourer sont nets sur un fond en dégradé de couleurs (donc parfaitement flou).

Parfois le détourage est facile, parfois moins. Mais l’objectif des techniques montrées est d’éviter le plus possible le travail de précision. À vous d’estimer l’enjeu de votre détourage, du temps dont vous disposez et de la qualité que vous voulez atteindre. Pour ma part, je suis très pointilleux, mais je n’y passerai pas des heures.

En prime, le palmier détouré (que j’utilise beaucoup dans mes formations)

Palmier parfaitement détouré

Annonce – Mille et une façons de détourer une image avec GIMP

J’anime une conférence le 5 juillet à 11h, dans le cadre des rencontres mondiales du logiciel libre (RMLL2017).

Le détourage consiste à découper une partie d’une image ou photo pour la réutiliser séparément. GIMP propose plusieurs outils de sélection destinés à détourer un élément. Mais les outils ne sont pas suffisants pour effectuer un « bon » détourage.

Nous verrons, au cours de cette conférence, plusieurs techniques, certaines classiques, d’autres, insolites, pour réaliser des détourages selon la qualité de la photo et la nature de l’élément à détourer.

LinuxMint : dépôts et mises à jour

LinuxMint est une distribution dérivée d’Ubuntu. Comme beaucoup de distributions, elle repose sur un gestionnaire de paquets qui se charge de l’installation et de la mise à jour des logiciels (et briques logicielles). Ce gestionnaire interroge un serveur dit « miroir », où sont déposés l’ensemble des paquets. On les appelle miroirs parce qu’ils se dupliquent entre-eux afin de tous proposer le même contenu.

Voici comment choisir un dépôt proche géographiquement et faire les mises à jour avec LinuxMint.

Conférence : les alternatives à Windows

Le 4 mars 2017 j’anime une conférence intitulée les alternatives à Windows à la médiathèque du Véron à Avoine. Voici un résumé avec les liens vers les sujets abordés.

Lien court vers cet article : https://frama.link/4marsalternatives

Cet article sera complété par l’enregistrement audio de la conférence (si la technique le veut bien).

État des lieux

Windows est le système d’exploitation le plus utilisé sur ordinateur personnel (plus de 91 %) alors que sur les appareils dit « mobiles » (téléphones et tablettes) c’est Google Android qui domine (environ 63 %) – source ZDNet.

Une telle hégémonie sur PC (le terme désigne ici l’ordinateur personnel, ce qui inclut ceux fabriqués par Apple), même si elle est loin d’être nouvelle, pose questions : pourquoi, du point de vue de nombre d’utilisateurs, n’existe-t-il qu’un seul système (même si Apple et Mac OS X disposent d’une certaine visibilité) ? Existe-t-il des alternatives ?

Dans les descriptions des alternatives j’évoquerai bien sûr le cas Android mais m’attarderai peu sur les mobiles, le choix de l’utilisateur étant quasiment inexistant (les matériels sont verrouillés pour éviter de changer de système, ils sont également très divers, contrairement aux PC).

Alternatives et libertés

Windows n’est donc pas le seul système existant, mais sur quels critères choisir une alternative ? Peut-on mettre sur le même plan Mac OS X et Linux ?

Le critère de la liberté me semble fondamental. Liberté de logiciel mais encore plus celle de l’utilisateur. En effet, on peut priver de liberté un utilisateur avec des logiciels libres, Android en est la preuve.

Logiciel libre

Un programme est un logiciel libre si vous, en tant qu’utilisateur de ce programme, avez les quatre libertés essentielles :

  • la liberté d’exécuter le programme comme vous voulez, pour n’importe quel usage (liberté 0) ;
  • la liberté d’étudier le fonctionnement du programme, et de le modifier pour qu’il effectue vos tâches informatiques comme vous le souhaitez (liberté 1) ; l’accès au code source est une condition nécessaire ;
  • la liberté de redistribuer des copies, donc d’aider votre voisin (liberté 2) ;
  • la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3) ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos changements ; l’accès au code source est une condition nécessaire.

Android est un système basé sur le noyau Linux (un logiciel libre) mais comporte des briques (des éléments) propriétaires. Il ne peut donc être considéré comme un logiciel libre.

Utilisateur libre

Un utilisateur est libre s’il peut utiliser un logiciel de manière anonyme ou s’il a l’entière maîtrise des données personnelles qu’il confie à ce logiciel. Un utilisateur est libre si sa vie privée est préservée.

Cela peut paraître anachronique, mais un ordinateur personnel ou un appareil mobile doit pouvoir fonctionner sans être connecté à quelque réseau que ce soit.

Or, on constate, de plus en plus, des systèmes qui, lors de l’installation ou du premier démarrage, demandent une adresse e-mail ou de créer un compte sur le serveur de l’éditeur du logiciel. C’est le cas de Windows et d’Android (à ma décharge, je n’ai pas testé cela sur un Mac). Même s’il n’est pas obligatoire de donner ce genre d’informations, le système vous incite à croire le contraire.

De plus, sur un système comme Android il est très difficile de se passer de Google Play pour installer des applications : la plupart des éditeurs d’applications ne proposent leur produits que via Google Play (ou l’App Store d’Apple) alors que ceux-ci pourraient être téléchargés directement depuis leurs sites respectifs. Or, utiliser Google Play nécessite d’avoir un compte Google, donc d’accepter les conditions d’utilisations.

La mainmise de Google sur nos vies

Google est avant tout un moteur de recherche extrêmement performant qui a révolutionner la recherche sur le Web au début du siècle. Du coup, il est aujourd’hui utilisé par plus de 90 % des internautes en Europe (moins aux États-Unis ou Microsoft Bing a plus de succès ainsi qu’en Russie et en Chine ou règnent les moteurs de recherches approuvés par l’État).

Google est donc en situation de monopole sur la recherche sur le Web : cela conduit à penser que Google peut choisir le Web auquel il donne accès et nous cacher les sites qui lui déplaisent.

Des services attractifs et bien pensés

Google est aussi un fournisseur de courrier électronique (Gmail). Faîtes le compte autour de vous des personnes qui n’ont pas leur courrier chez Gmail, vous risquez d’être surpris…

Youtube est également un service de Google très populaire et nettement plus utilisé et consulté que Dailymotion ou Vimeo. Puis, il y les services plutôt orientés entreprises comme Google Drive, Google Documents, Google Agenda, dont il est difficile de se passer une fois que l’on y a goûté et confié une masse non négligeable de données.

Mais une traçabilité bien pensée

Petit extrait des règles de confidentialité : « Nos systèmes automatisés analysent vos contenus (y compris les e-mails) afin de vous proposer des fonctionnalités pertinentes sur les produits, telles que des résultats de recherche personnalisés, des publicités sur mesure et la détection des spams et des logiciels malveillants. Cette analyse a lieu lors de l’envoi, de la réception et du stockage des contenus. »

Donc, résumons, si vous avez un téléphone Android, que vous avez un compte Google, que la connexion 3G et le GPS sont activés en permanence (votre batterie se vide donc très vite), Google a donc tout loisir de croiser toutes les informations que vous lui donnez directement ou indirectement (vos déplacements, les sites et vidéos que vous consultez, les mails que vous recevez, etc.) À propos de déplacement, consultez votre historique.

Vous souhaitez quitter Google ? C’est possible mais la route est longue. Commencez par regarder l’initiative Dégooglisons Internet de Framasoft. Vous pouvez aussi changer de moteur de recherche ou encore vous tourner vers un fournisseur de courrier électronique plus éthique comme Newmanity.

Survivre avec Android

Tout d’abord, si vous avez un téléphone Android, vous avez intérêt à faire le ménage dans les applications installées et en fonctionnement. Voici un article qui vous explique comment arrêter les applications tournant en arrière plan sur Android et ainsi éviter des fuites de données et faire durer votre batterie.

Si vous voulez vous passer d’un compte Google et que vous voulez malgré tout installer des applications (fichiers au format APK), vous avez plusieurs possibilités :

  • les télécharger sur votre PC directement depuis un site qui les propose en téléchargement direct comme https://apk-dl.com/, puis copiez-les sur votre téléphone via la connexion USB ou BlueTooth et enfin, utilisez le gestionnaire de fichiers d’Android pour les installer ; inconvénient, cela ne gère pas les mises à jour ;
  • installer F-Droid, une application qui gère un catalogue d’applications libres et accessibles sans authentification ; les mises à jour sont gérées mais vous n’aurez pas les mêmes applications que via Google Play

Et Linux dans tout ça !

On désigne généralement par Linux une famille de système d’exploitation, initialement pour PC (même si, par exemple, Android est basé sur Linux). Linux n’est en réalité que le noyau, un petit logiciel qui fait l’interface entre le matériel et le reste du système (signaux d’entrée comme le clavier, la souris, la caméra et de sortie comme le son, l’image, l’impression, etc.)

En réalité il convient de parler de distributions Linux qui constituent un ensemble utilisable (noyau, système et applications pour travailler, jouer, flâner, etc.). Il existe une multitude de distributions : des généralistes et des plus spécifiques.

Bases d’une distribution

Une distribution est donc un ensemble comprenant le noyau Linux, le système GNU et un gestionnaire d’installation de logiciels. Cette dernière partie est finalement la plus novatrice : depuis une unique application vous disposez d’un catalogue immense de logiciels (libres mais pas que) que vous pouvez installer d’un clic. Plus besoin d’aller sur le site de Firefox pour installer votre navigateur favori. En plus, les mises à jour sont gérées et Linux vous demande de les effectuer quand vous le souhaitez.

La plupart des distributions existent en version live : à partir d’une image ISO (un gros fichier qui correspond à la copie conforme d’un DVD) que vous pouvez graver sur un DVD ou flasher sur une clé USB vous pouvez démarrer un système Linux sur un ordinateur sans l’installer. Idéal pour essayer, vous faire une idée sans risque pour votre Windows ou votre Mac OS X.

Avantages

Le principal avantage est l’absence de contrainte technique sur les distributions libres : pas de verrou qui vous empêcherait d’effectuer des opérations interdites par l’éditeur.

Vous disposez toujours de logiciels mis à jour (important lorsque des failles de sécurité sont corrigées).

Si vous en avez les capacités, vous pouvez vous débrouiller tout seul pour solutionner les problèmes. Oui, vous rencontrerez des problèmes même avec Linux, c’est inhérent en informatique, mais vous avez la possibilité de les corriger. Sous Windows ou Mac OS X vous pourrez vous heurter à des barrières techniques ou chercher longtemps un paramètre qui devrait pourtant être facile d’accès. Parce que dans la recherche de simplicité et de convivialité, les éditeurs de logiciels propriétaires estiment que vous ne devez pas fourrer votre nez dans les coulisses.

Les distributions comme la plupart des logiciels d’usage courants sont traduits dans un nombre de langues qui n’a pas d’égal dans le monde propriétaire. Vous pourrez trouver des distributions proposant le Breton ou le Klingon.

Vous avez accès à un catalogue de logiciels qui couvre à peu près tous les besoins : dans mon cas, je dispose de logiciels professionnels pour retoucher les photos (GIMP), mettre en page des documents qui sont correctement imprimés chez un imprimeur (Scribus), monter des vidéos qui passent sans problème dans un cinéma (Kdenlive). La liste n’est pas exhaustive. Voir mes réalisations d’impression et de montage vidéo.

Inconvénients

Certains usage spécifiques sont mal couverts, voire pas du tout. Si vous êtes joueur et amateur des derniers jeux à la mode, il vaut mieux rester sous Windows (ou investir dans une console de jeux). Cependant, même s’ils sont peu nombreux, il existe des jeux de qualité sous Linux (certains libres, d’autres pas).

La comptabilité est une activité mal aimée, c’est aussi le cas sous Linux. Mais la tendance se dirige vers les logiciels Web tels que Odoo, donc accessibles par un navigateur Web (Firefox).

Si vous utilisez un logiciel métier, il y a peu de chance qu’il soit multi-plateforme (c’est-à-dire disponible sous Linux et Mac OS X en plus de Windows), c’est donc rédhibitoire, même si là aussi la tendance est aussi aux logiciels Web.

Si vous êtes habitué à utiliser certains logiciels propriétaires qui demandent un temps d’apprentissage conséquent (au hasard, la suite Adobe), il vous faudra pas mal d’efforts et surtout de temps pour basculer sur les équivalents libres. Tout dépend de votre volonté et votre temps disponible.

Enfin, gros inconvénient, Microsoft et les constructeurs de PC se sont entendus pour rendre difficile l’installation de systèmes alternatifs sur les matériels. Il faudra parfois batailler dur pour simplement démarrer depuis une clé USB. Mais cela reste possible, je n’ai essuyé aucun échec à ce jour, même si parfois j’ai eu envie de renoncer.

Généralistes

Les distributions généraliste sont celles qui proposent par défaut des logiciels d’usage très courant (suite bureautique LibreOffice, navigateur Firefox) et une interface assez classique. La plus connue reste Ubuntu même si LinuxMint se révèle la plus utilisée.

Si Ubuntu a grandement contribué à populariser Linux (sous l’impulsion du milliardaire Mark Shuttleworth) son virage « commercial » lui a sans doute fait perdre sa première place au rang des distributions les plus utilisées. En effet, suite à des accords entre Canonical (éditeur d’Ubuntu, dont le siège est situé sur l’île de Man, un paradis fiscal) et Amazon, vous serez pollué par des publicités dans votre usage quotidien. Certes, il est possible de les retirer, mais autant utiliser LinuxMint, qui n’est autre qu’une Ubuntu personnalisée et nettoyée.

Production multimédia

Sujet qui me tient à cœur, la production multimédia dispose de plusieurs distributions dédiées. Par exemple, Ubuntu Studio et AV Linux.

Elles vous proposent par défaut un certains nombre de logiciels pour le travail du son et de l’image (fixe et animée). Une fois installée, vous disposez de tous les outils nécessaires à vos productions.

École

L’école est un milieu où malheureusement le monopole de Microsoft s’exprime pleinement, essentiellement par manque de volonté politique au niveau du ministère de l’Éducation nationale.

AbulÉdu est une solution libre proposant un ensemble de logiciels pédagogiques avec des profils adaptés à l’âge des enfants. Début 2000 AbulÉdu fut développée au sein de l’association Abul à Bordeaux. Elle fut ensuite pérennisée par l’entreprise Ryxéo jusqu’en mai 2016, date à laquelle la société a déposé le bilan, faute d’un modèle économique, pourtant bon, qui a souffert du manque de soutien de l’Éducation nationale.

AbulÉdu existe toujours au sein de l’Abul (qui ne l’avait jamais vraiment quittée).

Protection de la vie privée

En utilisant une distribution Linux vous avez la garantie de ne pas être traqué par des mouchards (contrairement aux systèmes de Microsoft, Google et Apple). Cependant, vos communications ne sont pas protégées et sont lisibles par tous les intermédiaires d’Internet entre vous et votre destinataire (mail ou Web).

Tails est une distribution orientée protection de la vie privée. Elle vous fournit des outils pour être le plus anonyme possible. Elle est utilisé par Edward Snowden, notamment lorsqu’il a communiqué avec des journalistes pour transmettre ses révélations sur les programmes de surveillance de la population par plusieurs agences de renseignements (NSA, GCHQ, etc.) Lire dans le Monde : Tails, l’outil détesté par la NSA, qui veut démocratiser l’anonymat en ligne.

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. Cela se fait via Fichier → Réglage du document → Réglage du document (en l’occurrence, l’onglet porte le même nom que la fenêtre).

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