Outils pour utilisateurs

Outils du site


issue122:inkscape

One area of functionality that has received a huge boost in 0.91 and 0.92 is finding and selecting objects. There are many situations in which you may need to find similar, or identical objects in a busy drawing, perhaps to delete or change them all at once. In previous versions, this was a chore, especially if you had to make the same selection multiple times. So let’s look at the various ways in which recent releases make this easier. I’m going to use this contrived grid of objects to give you a feel for how the new tools operate: The first few items all live under the Edit > Select Same submenu, and offer several different ways to select all items which share a particular visual style. To use any of them, you must first select one or more objects whose close relatives you wish to also select. As a first example, if I select the teal square at the top left of my grid, then use Edit > Select Same > Object Type, all the other squares are selected. In my image I’ve given the selected items a gold colored background to make them stand out a little better, but you won’t see that in normal use. One important thing to note is that selecting the same “object type” purely refers to the type of underlying Inkscape object – so squares and rectangles, or circles and ellipses, are considered equivalent. You can see this effect if I select the green star on the top line, then use Select Same > Object Type. Not only are the stars selected, but so are the triangles, as they were all created using the ‘star’ tool. Frustratingly, the select by type option doesn’t work terribly well with multiple items selected. If every object in the selection is already the same type, it will work to select the other objects of that type; but if any one of them is of a different type then, rather than selecting all the objects of either type, everything is de-selected instead.

Une partie fonctionnelle qui a reçu une forte poussée dans les 0.91 et 0.92 est la recherche et la sélection d'objets. Il y a de nombreuses situations dans lesquelles vous pouvez avoir besoin de trouver des objets similaires ou identiques dans un dessin chargé, peut-être pour tous les effacer ou les modifier d'un coup. Dans les versions précédentes, c'était une corvée, surtout si vous deviez faire la même sélection de nombreuses fois. Aussi, regardons les différentes façons dont les publications récentes rendent cela plus facile. Je vais utiliser cette grille d'objets peu naturelle pour vous donner un aperçu du fonctionnement des nouveaux outils :

Les premiers éléments se trouvent tous dans le sous-menu Éditer > Sélectionner même, qui offre plusieurs façons différentes de sélectionner tous les éléments qui partagent un même style visuel précis. Pour utiliser n'importe lequel d'entre eux, vous devez d'abord sélectionner un ou plusieurs objets dont vous voudriez sélectionner aussi les objets très similaires. Comme premier exemple, si je sélectionne le carré bleu sarcelle en haut à gauche de la grille, puis que j'utilise Éditer > Sélectionner même > Type d'objet, tous les autres carrés sont sélectionnés. Dans mon image, j'ai attribué une couleur jaune d'or au fond des objets sélectionnés pour mieux les faire ressortir, mais vous ne verrez pas ça en usage normal.

Une chose importante à noter est que sélectionner le même « type d'objet » fait référence précisément au type d'objet Inkscape sous-jacent - ainsi, des carrés et des rectangles, ou des cercles et des ellipses, sont équivalents. Vous pouvez voir cet effet si je sélectionne l'étoile verte sur la ligne du haut, puis utilise Sélectionner même > Type d'objet. Non seulement les étoiles sont sélectionnées, mais aussi les triangles, car ils sont tous créés en utilisant l'outil « Étoile ».

C'est frustrant ; l'option de sélection par type ne fonctionne pas terriblement bien quand beaucoup d'objets sont sélectionnés. Si chaque objet de la sélection est déjà du même type, ça sélectionnera les autres objets du même type ; mais, si l'un des objets est d'un type différent, alors, plutôt que de sélectionner tous les objets de l'un des types, tout est désélectionné.

Select Same > Fill Color has no such problem: if I have both the teal square and the green star selected, then all the objects with a teal or green fill will be selected by the command. Note, however, that selecting by color is extremely specific: it will only select items whose fill color is absolutely identical to your starting object. There’s no way to set a threshold, in order to select all the items with approximately the same shade of green, for example. There’s also a Select Same > Stroke Color option, which does the same thing, with the same exacting requirements for a match, but based on the stroke color rather than the fill color. For example, selecting the teal square once again (before executing the command) will select all the shapes on the top and bottom rows; they all have a black stroke, even though the stroke thickness and dashes are different between them. Once again, starting with a multiple selection will result in a cumulative set of items whose stroke colors match any of the objects in your initial line-up. The counterpoint to selecting by stroke color is to select by Stroke Style. This matches objects only if they have the same stroke thickness and dashes – including the same dash offset, which seems a little strict, in my opinion. Stroke color, line caps, join type and markers don’t seem to have an effect, whereas the mitre limit does. The choice of what properties do and don’t contribute to a “matching” line style seem rather arbitrary and counter-intuitive, which may limit the usefulness of this option in many situations. Even more limiting, however, is the Select Same > Fill and Stroke menu entry. This will match items only with an identical stroke, but where both the fill and stroke colors also match. It’s the digital equivalent of a club doorman not only refusing entry for wearing sneakers, but actually only allowing entry to people with exactly the same shoes as him, in the same color and style – and only then if they’re also the same size.

Sélectionnez même > Couleur de remplissage n'a pas un tel problème : si je sélectionne ensemble le carré sarcelle et l'étoile verte, tous les objets avec un remplissage bleu sarcelle ou vert seront sélectionnés par la commande.

Notez, cependant, que la sélection par la couleur est extrêmement particulière : elle ne sélectionnera que les objets dont la couleur de remplissage est absolument identique à celle de l'objet de départ. Il n'y a aucun moyen de mettre un seuil, de façon à sélectionner tous les objets avec approximativement la même nuance de vert, par exemple.

Il y a aussi une option Sélectionner même > Couleur du contour, qui fait la même chose, avec les mêmes exigences de précision dans la correspondance, mais sur la base de la couleur du contour plutôt que celle de remplissage. Par exemple, la sélection à nouveau du carré sarcelle (avant d'appliquer la commande) sélectionnera toutes les formes des rangées du haut et du bas ; elles ont toutes un contour noir, même si l'épaisseur du trait et les pointillés les rendent différentes l'une de l'autre. Une fois encore, une sélection initiale multiple entraînera un jeu cumulé d'éléments dont les couleurs de contour correspondront aux objets de la sélection initiale.

Le contraire de la sélection par la couleur du contour est la sélection par Style du contour. Les objets correspondront seulement s'ils ont les mêmes épaisseur et pointillé - y compris le même décalage de pointillé, ce qui paraît un peu strict, à mon avis. La couleur du contour, les embouts de ligne, le type de liaison et les marqueurs ne semblent avoir aucun effet, alors que la surface de séparation en a. Le choix de propriétés qui contribuent ou non à une correspondance de style de ligne semble plutôt arbitraire et non intuitive, ce qui pourrait limiter l'utilité de cette option dans de nombreuses situations.

Cependant, l'entrée de menu Sélectionnez même > Remplissage et contour est encore plus limitée. Seuls correspondront les objets avec un contour identique, mais dont les couleurs de remplissage et de contour correspondent aussi. C'est l'équivalent électronique du portier de boîte qui non seulement refuse l'entrée à ceux qui sont en tennis, mais qui ne permet l'entrée qu'aux gens qui portent les mêmes chaussures que lui, avec le même style et la même couleur, et, en plus, seulement s'ils ont la même taille.

The next tool we’ll look at this month is the recently souped-up Find/Replace dialog, which can be opened from the Edit menu or by pressing Ctrl-F. The key to working with this dialog effectively is to understand that all it’s really doing is a search (and possibly a replace) of text within the XML code that makes up an Inkscape document. So, first, a quick recap on XML using a heavily abridged snippet of code representing a text object in Inkscape: <text id=“text1178”> <tspan id=“tspan1180” style=“font-style:normal; font-weight:bold; font-family:Arial; -inkscape-font-specification:'Arial Bold'; fill:#000000;” x=“320.68646” y=“86.745667”> This is some text </tspan> </text> XML represents a tree structure in text. Here you can see that we have an opening <text …> element, which gets closed by the </text> line at the end. Inside of that is a single <tspan …> element, again being closed near the end. Inside that is the text itself, “This is some text”. This is between the opening and closing <tspan> tags, but is not a tag itself. This piece of literal text is what XML refers to as a ‘text node’, whereas <tspan> and <text> are ‘element nodes’. The element nodes also have name=value pairs of extra data, referred to as ‘attributes’. In the <text> node, for example, the id=“text1178” is an ‘id’ attribute, with a value of “text1178”. The ‘style’ attribute is a little special – it holds CSS style data, which itself takes the form of a list of ‘property:value;’ pairs. With that information in mind, let’s take a look at the Find/Replace dialog, with its Options section expanded:

L'outil suivant que nous allons regarder ce mois-ci est le dialogue Chercher/remplacer récemment renforcé, qui peut être ouvert depuis le menu Éditer ou en appuyant sur Ctrl-F. La clé pour travailler efficacement avec ce dialogue est de comprendre que tout ce qu'il fait vraiment est une recherche (et potentiellement un remplacement) de texte dans le code XML qui compose le document Inkscape. Aussi, d'abord, faisons un rapide récapitulatif sur XML en utilisant un extrait fortement abrégé du code représentant un objet texte dans Inkscape :

<text id=“text1178”>

<tspan
  id="tspan1180"
  style="font-style:normal;
        font-weight:bold;
        font-family:Arial;
  1. inkscape-font-specification:'Arial Bold';
        fill:#000000;"
  x="320.68646" y="86.745667">
    Voici un petit texte
</tspan>

</text>

XML représente une structure arborescente de texte. Ici, vous pouvez voir que nous avons un élément d'ouverture <text …>, qui est fermé par la ligne </text> à la fin. À l'intérieur, il y un seul élément <tspan …>, lui aussi fermé peu avant la fin. À l'intérieur de ceci se trouve le texte proprement dit, « Voici un petit texte ». Il se trouve entre les balises ouvrante et fermante <tspan>, mais il n'est pas lui-même une balise. Ce morceau de texte littéral est ce à quoi XML fait référence à propos du « nœud de texte », alors que <tspan> et <text> sont des « nœuds d'élément ». Les nœuds d'élément ont souvent des paires nom=valeur de données supplémentaires, ce qu'on appelle des « attributs ». Dans le nœud <text>, par exemple, id=“text1178” est un attribut « id », avec « text1178 » pour valeur. L'attribut « style » est un peu spécial - il contient les données du style CSS, qui lui-même prend la forme d'une liste de paires « propriété:valeur: ».

Avec ces informations en mémoire, regardons le dialogue Rechercher/remplacer, avec sa section Options développée :

As you might expect from a Find/Replace dialog, the first two fields allow you to type in text to be searched for and, optionally, text to replace it with. The search will match against substrings, unless the ‘Exact Match’ checkbox is ticked, so searching for “Fred” will match against Fred, Freda, Winifred and Alfred – although the latter two will match only if the ‘Case Sensitive’ checkbox is cleared. Interestingly, you can search with this field left blank. As you might guess, an empty string matches against everything, but the match is further restricted by the choices in the ‘Object types’ section at the bottom. Usually you would probably leave this set to ‘All types’, but, by setting specific checkboxes and leaving the search field blank, it provides a fast way to select all the objects of specific types – a workaround for the Select Same > Object Type’s restriction on finding only one type at a time. Assuming the more common case, where a search string is entered, the ‘Search in’ radio buttons determine whether the XML text nodes will be searched, or the attributes on the element nodes (though the latter is labelled as ‘Properties’ in the Inkscape UI). Use the former to search and replace text content – handy if you’re using Inkscape as a poor-man’s desktop publishing program (though I do recommend that you learn how to use Scribus if you need to do any significant text layout work). Use the ‘Scope’ buttons, and the checkboxes in the ‘General’ section to limit your search a little, if necessary. Switching the ‘Search in’ control to ‘Properties’ provides a great deal more power, if you’re comfortable enough with the insides of an SVG file to know what to look for. By ‘Properties’ it means attributes and attribute values, including CSS properties. Making a distinction between these terms might seem a little petty, but understanding them is key to making effective use of this section of the dialog. There you’ll find checkboxes to tell Inkscape which parts of the XML it should search: • ID – Only search the value of the ‘id’ attributes. • Style – Search for CSS properties and CSS values within the value part of ‘style’ attributes. • Font – Presumably this searches for only CSS font names, but I was unable to get it to work at all on my test file. Use a ‘Style’ search instead. • Attribute Value – Search within the values of attributes. This includes searching the values of id and style attributes, even if the earlier checkboxes are blank. • Attribute Name – Search for elements with a particular attribute name. Not as useful as searching for values.

Comme vous pouvez l'attendre du dialogue Rechercher/remplacer, les deux premiers champs vous permettent d'entrer le texte à rechercher et, en option, le texte qui le remplace. La recherche se fera sur les sous-chaînes, sauf si la case « Correspondance exacte » est cochée ; ainsi, rechercher « Fred » correspondra à Fred, Freda, Winifred et Alfred - bien que les deux dernières ne correspondront que si la case « Sensible à la casse » est décochée. Curieusement, vous pouvez faire une recherche en laissant ce champ blanc. Comme vous pouvez le prévoir, une chaîne vide correspond à tout, mais la correspondance est restreinte plus loin par les choix faits dans la section « Types d'objet » tout en bas. Habituellement, vous laisseriez probablement ce choix à « Tous les types », mais, en cochant des cases spécifiques et en laissant vide le champ de recherche, vous disposez d'une façon rapide de sélectionner tous les objets d'un type particulier - une solution de contournement aux restrictions de Sélectionner même > Type d'objet qui ne recherche qu'un seul type à la fois.

En prenant le cas le plus classique, où une chaîne à rechercher est saisie, les boutons radio « Rechercher dans » détermine qui, des nœuds de texte du XML ou des attributs des nœuds d'éléments, sera recherché (bien que ces derniers soient étiquetés « Propriétés » dans la boîte de dialogue). Utilisez le premier pour rechercher et remplacer du contenu de texte, pratique si vous utilisez Inkscape comme un programme de mise en page du pauvre (bien que je vous recommande d'apprendre comment utiliser Scribus si vous avez un travail de mise en page significatif). Utilisez les boutons sous « Étendue », et les cases à cocher de la section « Général » pour limiter un peu votre recherche, si nécessaire.

En basculant sur « Propriétés » dans le contrôle « Rechercher dans », vous disposerez d'une plus grande chance de succès, si vous êtes suffisamment à l'aise avec les entrailles d'un fichier SVG pour savoir quoi chercher. Par « Propriétés », comprenez attributs et valeurs d'attributs, y compris les propriétés de CSS. Faire la distinction entre ces termes peut paraître un peu pinailleur, mais leur compréhension est la clé d'une utilisation efficace de cette section de la boîte de dialogue. Là, vous trouverez des cases à cocher pour dire à Inkscape dans quelles parties du XML il devra chercher : • ID – Recherche uniquement sur la valeur des attributs « id ». • Style – Recherche les propriétés de CSS et les valeurs de CSS dans la partie valeur des attributs « style ». • Police – Je suppose que ceci recherche uniquement des noms de polices de CSS, mais j'ai été incapable de le faire marcher avec mon fichier de test. À la place, utilisez une recherche par le « Style ». • Valeur d'attribut – Cherche dans les valeurs d'attributs. Ceci comprend les recherches de valeurs des attributs id et style, même si les cases à cocher précédentes sont décochées. • Nom d'attribut – Recherche d'éléments avec un nom d'attribut particulier. Pas aussi utile que la recherche par les valeurs.

Usually, searching for an attribute value is sufficient. It will find matching IDs, styles and font names, without you having to understand how they’re stored in the XML. Only if it finds too much, is it worth switching to search only IDs or styles. Searching for attribute names is never really necessary for normal users, but might have its place if you’re using Inkscape to work on graphics for a web application that carry additional custom metadata. There are a couple of things to beware of when using this dialog in ‘Properties’ mode, however. Firstly, it can end up selecting objects you didn’t expect. Consider an element with a red stroke; later you change the stroke width to zero, so it isn’t visible any longer. If you search for “#ff0000” hoping to select all the elements with a red fill, you’ll also select the object with no stroke. Although it might not be visible, there will still be a color stored for the stroke in the style attribute, which is enough for it to become part of your selection. The second warning is with regard to the ‘replace’ field: performing a find and replace in text mode is generally safe; doing so in properties mode could have unforeseen results. Thankfully, Inkscape is sensible enough to stop you performing a replace operation if the ‘Attribute name’ checkbox is selected, but arbitrarily replacing strings within attribute values can be almost as destructive. It might seem safe enough to replace your black fills with white, by searching for “000000” and replacing it with “ffffff”, but a series of six zeroes could easily appear in the coordinates of your objects, where hexadecimal values are an error that could break your entire drawing. If in doubt, save a backup of your file first.

Habituellement, la recherche d'une valeur d'attribut est suffisante. Il trouvera les ID, styles et noms de polices correspondants, sans que vous ayez à comprendre comment ils sont stockés dans le XML. S'il vous en trouve trop, et uniquement dans ce cas, cela vaut le coup de passer à une recherche sur les seuls ID ou styles. La recherche des noms d'attributs n'est jamais vraiment nécessaire pour les utilisateurs ordinaires, mais elle peut avoir sa place si vous utilisez Inkscape pour travailler sur des dessins pour une application Web qui contient des meta-données personnalisées supplémentaires.

Cependant, il faut faire attention à deux choses en utilisant ce dialogue dans le mode « Propriétés ». D'abord, il peut finir par sélectionner des objets auxquels vous ne vous attendiez pas. Prenez, par exemple, un élément avec un contour rouge ; plus tard, vous modifiez la largeur du trait pour zéro, ce qui le rend alors invisible. Si vous cherchez « #ff0000 » espérant trouver tous les éléments avec un remplissage rouge, vous sélectionnerez aussi l'objet sans contour. Bien qu'il ne soit pas visible, il y a toujours une couleur rouge stockée dans l'attribut style du contour, ce qui est suffisant pour qu'il appartiennne à la sélection.

La seconde mise en garde est à propos du champ « Remplacer » : l'exécution d'un rechercher-remplacer en mode Texte est en général sans risque ; le faire dans le mode Propriétés peut donner des résultats inattendus. Heureusement, Inkscape est assez fin pour vous empêcher de réaliser une opération de remplacement quand la case « Nom d'attribut » est cochée, mais le remplacement des valeurs d'attributs par des chaînes de remplacement arbitraires peut être presque aussi destructif. Il pourrait paraître assez sûr de remplacer les remplissages noirs par du blanc, en cherchant « #000000 » et en le remplaçant par « #ffffff », mais une série de six zéros peut apparaître facilement dans les coordonnées de vos objets, où les valeurs hexadécimales sont une erreur qui pourrait détruire tout votre dessin. Si vous avez un doute, faites une sauvegarde d'abord.

Having used the previous tools to make a selection, Inkscape now also provides a way to save that selection for later use. The Object > Selection Sets… menu item opens a rather empty dialog for managing stored collections of selections: The most important thing to note about this dialog is that the “+” button at the bottom does not create a set containing your current selection. Instead it creates a new, empty selection set which has another “+” button next to it. Only when you click this other button will your selection be stored in the set. The same button can be used later to add another selection to any existing items in the set. If you click on the triangle next to a set, hoping to view the elements within it, you’ll quickly find that there’s a rather useless intermediate level, labelled “Items”, that you also have to expand. If you click the triangle next to the “Items” entry to expand it, you’ll finally get to a list of the objects in your selection.

Ayant utilisé les outils précédents pour faire une sélection, Inkscape fournit aussi maintenant une façon de sauvegarder cette sélection pour un usage ultérieur. La ligne de menu Objet > Ensembles de sélection… ouvre un dialogue plutôt vide pour gérer les collections de sélections enregistrées :

La chose la plus importante à noter à propos de ce dialogue est que le bouton du bas « + » ne crée pas un ensemble contenant votre sélection courante. À la place, il crée un nouvel ensemble de sélection vide qui a un nouveau bouton « + » sur le côté. C'est seulement quand vous cliquez sur cet autre bouton que votre sélection est sauvegardée dans l'ensemble. Le même bouton peut être utilisé par la suite pour ajouter une autre sélection à celles déjà existantes dans cet ensemble.

Si vous cliquez sur le triangle à côté d'un ensemble, espérant voir les éléments qui le compose, vous verrez rapidement qu'il y a un échelon intermédiaire plutôt inutile, marqué « éléments », que vous devez aussi développer. Si vous le faites, vous obtiendrez enfin une liste des objets de la sélection.

Clicking on the cross next to an item in the list will remove it from the set. Clicking on a name in the list will select it, whereas clicking on the Set itself will select all the items in that set. Unfortunately, clicking on a Set doesn’t highlight all the items within it, so, if you want to re-select all the items except one, for example, you have to highlight each entry separately whilst holding the CTRL-key. You can even use the CTRL-key to select multiple Sets, or combinations of Sets and individual items. What you can’t do, however, is select something from this dialog, then add to (or remove from) the selection by CTRL-clicking on objects on the canvas, which is a pity as it effectively turns Selection Sets into a separate selection mechanism rather than something which integrates seamlessly into your normal Inkscape workflow. Selection sets are preserved when you save a document, however they do get cleared when the Edit > Clean Up Document menu is used. Nevertheless, they have their uses – for example, as another means to work around the restriction on Select By Type only working with a single type at a time. If you want to select, say, all the circles and rectangles, you could use the Select By Type option twice, adding each resultant selection to the same Set. The new and extended selection tools in 0.92 are a welcome addition, especially when working with complex documents. They do have their limitations and idiosyncrasies, but hopefully they’ll continue to mature in future releases to provide even more capabilities.

Un clic sur la croix à côté d'un élément de la liste l'enlèvera de l'ensemble. Un clic sur un nom de la liste le sélectionnera, alors qu'en cliquant sur l'ensemble lui-même, tous les éléments de l'ensemble seront sélectionnés. Malheureusement, un clic sur un ensemble ne surligne pas tous les éléments inclus ; aussi, si vous voulez re-sélectionner tous les éléments sauf un, par exemple, vous devez mettre en surbrillance chaque entrée séparément tout en appuyant sur la touche Ctrl. Vous pouvez même utiliser la touche Ctrl pour sélectionner plusieurs ensembles, ou des combinaisons d'ensembles et d'éléments individuels. Cependant, vous ne pouvez pas sélectionner quelque chose dans le dialogue, puis ajouter (ou enlever) une sélection en appuyant sur la touche Ctrl tout en cliquant sur des objets du canevas ; c'est dommage, car ça fait des ensembles de sélection un mécanisme de sélection réellement distinct plutôt que quelque chose de parfaitement intégré dans l'activité normale d'Inkscape.

Les ensembles de sélections sont sauvegardés quand vous enregistrez votre document ; toutefois, ils seront effacés si vous utilisez le menu Fichier > Nettoyer le document. Néanmoins, ils ont leur utilité, par exemple, comme un autre moyen de contourner la restriction de la Sélection par type qui n'accepte qu'un seul type à la fois. Si vous voulez sélectionner, disons, tous les cercles et les rectangles, vous pouvez utiliser la Sélection par type deux fois, en ajoutant chaque sélection résultante au même ensemble.

Les nouveaux outils étendus de sélection dans la 0.92 sont un ajout bienvenu, surtout quand vous travaillez avec des documents complexes. Ils ont leurs limitations et leurs comportements surprenants, mais, avec un peu de chance, ils vont continuer à mûrir dans les publications futures pour fournir encore plus de possibilités.

issue122/inkscape.txt · Dernière modification : 2017/07/14 15:57 de andre_domenech