Ceci est une ancienne révision du document !
Let’s begin this month by talking about grids. These are a feature that I rarely use, but there’s no denying that they can be invaluable when trying to keep objects neatly aligned – such as when using Inkscape as a makeshift DTP program in which you want text boxes to live on an underlying structure, defined with a rectangular grid. Some artistic or engineering work can also make heavy use of grids, particularly if you’re using an axonometric grid to create lines using an isometric (30°) or oblique (45°) projection. Rectangular and axonometric grids have been part of Inkscape for a long time, but version 1.4 adds a third: modular grids. These share some similarity with rectangular grids, in that they are based on horizontal and vertical lines. But whereas rectangular grids use lines that extend to infinity to mark out squares and rectangles in the page, modular grids instead use an infinite array of rectangular blocks, with optional spacing between them.
Commençons ce mois-ci par parler des grilles. C'est une fonctionnalité que j'utilise rarement, mais il est indéniable qu'elles peuvent s'avérer précieuses pour aligner parfaitement les objets, par exemple lorsqu'on utilise Inkscape comme logiciel de PAO improvisé, où l'on souhaite placer des zones de texte sur une structure sous-jacente définie par une grille rectangulaire. Certains travaux artistiques ou d'ingénierie peuvent également faire un usage intensif des grilles, notamment si l'on utilise une grille axonométrique pour créer des lignes en projection isométrique (30°) ou oblique (45°).
Les grilles rectangulaires et axonométriques sont présentes dans Inkscape depuis longtemps, mais la version 1.4 en ajoute une troisième : les grilles modulaires. Celles-ci partagent certaines similitudes avec les grilles rectangulaires, car elles sont basées sur des lignes horizontales et verticales. Alors que les grilles rectangulaires utilisent des lignes infinies pour délimiter les carrés et les rectangles de la page, les grilles modulaires utilisent un ensemble infini de blocs rectangulaires, avec un espacement optionnel entre eux.
For any new Inkscape users, it’s worth pointing out exactly how grids work. They’re purely a construction aid, and do not appear in exported or printed output from the program. Most commonly they’re used in conjunction with snapping, causing the cursor to snap to grid lines and intersections as you draw shapes on the canvas. Pressing the ‘#’ key will toggle the visibility of all the grids at once, and when they’re not visible then they can’t be snapped to. This makes it easy to use grids for general layout, but to turn them off quickly if you need to draw something off the grid lines without turning off snapping in general. Creating grids has been made slightly easier in 1.4. They still live in the Grids tab inside the File > Document Properties dialog, but the previous approach of picking the grid type from a popup menu and then having to click the New button has been streamlined into direct creation buttons for each type of grid. You can still create multiple grids, mixing the types and parameters as you see fit, with each of them appearing as a separate tab in the lower part of the dialog.
Pour les nouveaux utilisateurs d'Inkscape, il est important de bien comprendre le fonctionnement des grilles. Elles servent uniquement d'aide à la construction et n'apparaissent pas dans les sorties du programme, exportées ou imprimées. Elles sont généralement utilisées en conjonction avec le magnétisme, permettant au curseur de s'accrocher aux lignes et aux intersections de la grille lorsque vous dessinez des formes sur le canevas. Appuyer sur la touche « # » permet d'afficher toutes les grilles simultanément ; lorsqu'elles ne sont pas visibles, il est impossible de s'y accrocher. Cela facilite l'utilisation des grilles pour la mise en page générale, mais permet également de les désactiver rapidement si vous devez dessiner hors des lignes de la grille sans désactiver le magnétisme en général.
La création de grilles a été légèrement simplifiée dans la version 1.4. Elles sont toujours disponibles dans l'onglet « Grilles » de la boîte de dialogue Fichier > Propriétés du document, mais l'approche précédente, qui consistait à choisir le type de grille dans un menu contextuel puis à cliquer sur le bouton « Nouveau », a été simplifiée et il est proposé désormais des boutons de création directe pour chaque type de grille. Vous pouvez toujours créer plusieurs grilles, en combinant les types et les paramètres à votre guise, chacune d'elles apparaissant dans un onglet distinct en bas de la boîte de dialogue.
It can be useful to have multiple grids active at once if you carefully tweak the parameters to create some kind of relationship between them. For example, here’s a modular grid (red) and axonometric grid (blue), adjusted so that the modular grid creates a series of ‘frames’ inside of which the axonometric grid could be used to draw isometric designs. Consider something like a sprite sheet for an isometric game, or trying to design a coherent set of icons with a faux-3D effect, to see where such a capability could be useful. But it can also be useful to create multiple grids that may not be so obviously related to each other. Usually in this situation you’ll use the fact that each grid has its own ‘Visible’ checkbox to turn them on and off without having to remove any of them completely. Unfortunately there’s no keyboard shortcut to make toggling individual grids easier, so if you do want to use multiple grids like this, you’ll be making frequent trips to the tabs in this dialog to turn each one on and off.
Ça peut être utile d'avoir plusieurs grilles actives simultanément si vous ajustez soigneusement les paramètres pour créer une relation entre elles. Par exemple, voici une grille modulaire (rouge) et une grille axonométrique (bleue), ajustées de manière à ce que la grille modulaire crée une série de « cadres » à l'intérieur desquels la grille axonométrique pourrait être utilisée pour dessiner des motifs isométriques. Imaginez une feuille de sprites pour un jeu isométrique, ou essayez de concevoir un ensemble cohérent d'icônes avec un effet imitation 3D, pour voir où une telle fonctionnalité pourrait être utile.
Il peut également être utile de créer plusieurs grilles dont les liens ne sont pas forcément évidents. Généralement, dans ce cas, vous utiliserez la case à cocher « Visible » de chaque grille pour les activer et les désactiver sans avoir à les supprimer complètement. Malheureusement, il n'existe pas de raccourci clavier pour faciliter le basculement entre les grilles individuelles. Si vous souhaitez utiliser plusieurs grilles de cette manière, vous devrez donc accéder fréquemment aux onglets de cette boîte de dialogue pour les activer et les désactiver.
I covered rectangular and axonometric grids a decade ago, in FCM #97, and not a great deal has changed about their configuration since then. All the grid types now feature the ‘Align to page’ buttons – an array of 9 icon buttons that just act as shortcuts for setting the Origin X and Origin Y fields to some common values. But otherwise the controls for configuring rectangular grids remain largely identical. Axonometric grids, on the other hand, have gained one other convenience feature with 1.4. Next to the Angle X and Angle Y fields is a button to open a small door-hanger dialog. This contains a single field in which you can put a width:height ratio from which the angles will be calculated. This just saves you performing a little trigonometry if you know the ratio you want. For example, putting a value of “2:1” into this field results in the angles being set to 26.565051°. I’m sure you’ll agree that, for most people, entering the ratio would be preferable to calculating the angles for yourself. Few people are likely to use this feature, though, as for the most common angles of 30° or 45° it’s still easier to type them into the fields directly as degrees. “1.73205 :1” and “1:1” would be the equivalent ratios if you really want to know.
J'ai abordé les grilles rectangulaires et axonométriques il y a dix ans, dans le numéro 97 du FCM, et leur configuration n'a guère évolué depuis. Tous les types de grilles disposent désormais du bouton « Aligner sur la page » : un ensemble de neuf icônes servant de raccourcis pour définir les champs Origine X et Origine Y sur des valeurs communes. Par ailleurs, les commandes de configuration des grilles rectangulaires restent globalement identiques.
Les grilles axonométriques, quant à elles, ont gagné une fonctionnalité pratique supplémentaire avec la version 1.4. À côté des champs Angle X et Angle Y se trouve un bouton permettant d'ouvrir une petite boîte de dialogue. Celle-ci contient un champ unique permettant de définir le rapport largeur/hauteur à partir duquel les angles seront calculés. Cela vous évite d'effectuer quelques opérations trigonométriques si vous connaissez le rapport souhaité. Par exemple, saisir la valeur « 2:1 » dans ce champ donne des angles de 26,565051°. Vous conviendrez sans doute que, pour la plupart des gens, il est préférable de saisir le rapport plutôt que de calculer les angles soi-même. Cependant, peu de gens utiliseront probablement cette fonctionnalité, car, pour les angles les plus courants de 30° ou 45°, il est toujours plus simple de les saisir directement en degrés dans les champs. « 1,73205 :1 » et « 1 :1 » seraient les rapports équivalents si vous voulez vraiment tout savoir.
Although little has changed regarding rectangular and axonometric grids, the star of the 1.4 grid party is, of course, the modular grid, so let’s take a look at the parameters for those. I’m sure you can work out what the Grid Units control does. The two Origin fields set the position of the top-left corner of the grid. You might expect values of 0 to result in a block being positioned so that its top-left corner is perfectly aligned with the top-left corner of the page, but that’s not the case due to the Gap values. These fields set the distance between blocks, but they’re dished out equally on opposite sides of the block: a Gap X of 10 mm will result in a space of 5 mm to both the left and the right of each block, and similar logic applies to Gap Y. So if you do want your first block to be right in the corner of the page, you’ll need to set the Origin values to a negative value of half the corresponding Gap field. In other words, with a Gap X of 10 mm you need to set Origin X to -5 mm (and the same for the Y values). In most cases, however, a bit of a space between the page border and the grid is desirable, so leaving the origin values at zero might be fine. As usual, the exact parameters you need will be highly dependent on what you’re drawing, and how your image relates to the underlying grid.
Alors que peu de changements aient été apportés aux grilles rectangulaires et axonométriques, la star de la grille 1.4 est bien sûr la grille modulaire. Examinons donc ses paramètres.
Vous pouvez certainement comprendre l'action du contrôle Unités de la grille. Les deux champs Origine définissent la position du coin supérieur gauche de la grille. On pourrait s'attendre à ce qu'une valeur de 0 corresponde à un positionnement parfait du coin supérieur gauche d'un bloc avec celui de la page, mais ce n'est pas le cas en raison des valeurs d'Espacement. Ces champs définissent la distance entre les blocs, mais celle-ci est répartie uniformément de chaque côté du bloc : un Espacement X de 10 mm crée un espace de 5 mm à gauche et à droite de chaque bloc, et la même logique s'applique à l'Espacement Y. Si vous souhaitez que votre premier bloc soit placé dans le coin supérieur gauche de la page, vous devrez définir les valeurs d'Origine sur une valeur négative égale à la moitié de la valeur du champ Espacement correspondant. Autrement dit, avec un écart X de 10 mm, vous devez définir l'origine X à -5 mm (et de même pour les valeurs Y). Cependant, dans la plupart des cas, un léger espace entre la bordure de la page et la grille est souhaitable ; laisser les valeurs d'origine à zéro peut donc convenir. Comme d'habitude, les paramètres exacts dont vous aurez besoin dépendront fortement de ce que vous dessinez et de la relation entre votre image et la grille sous-jacente.
The Block Width and Block Height fields are pretty self-explanatory, other than the fact that it seems to be impossible to set them to nice, round, equal numbers. Having entered “40” into each field, you can see from the screenshot that one has been nudged slightly up, and the other slightly down. Similar discrepancies seem to happen regardless of the Grid Units, so it’s not just a problem with some internal conversion from millimetres to pixels. The differences are tiny, and unlikely to cause a genuine problem for anyone – but it is rather annoying. The Margin X and Margin Y fields set an offset that is used to draw a second block, centered on the first. This can be used to draw a margin box around each block, or to draw an inset box by using negative values. The margin boxes are drawn in the color set by the Minor Grid Line Color field, while the main block uses the corresponding Major Grid Line Color. In this screenshot, I’ve set the Minor Color to solid red, and the Major Color to solid blue – you can see how different margin values result in different minor boxes. Both major and minor blocks can be snapped to, so careful use of these fields might provide you with some useful snap points without requiring an additional grid to be created (though that’s still an option, of course).
Les champs Largeur et Hauteur du bloc sont assez explicites, si ce n'est qu'il semble impossible de les définir sur des valeurs rondes et égales. Après avoir saisi « 40 » dans chaque champ, vous pouvez constater sur la capture d'écran que l'un a été légèrement décalé vers le haut et l'autre vers le bas. Des écarts similaires semblent se produire quelles que soient les unités de la grille ; il ne s'agit donc pas simplement d'un problème de conversion interne des millimètres en pixels. Les différences sont minimes et ne devraient pas poser de réel problème, mais elles sont plutôt gênantes.
Les champs Marge X et Marge Y définissent un décalage permettant de dessiner un deuxième bloc, centré sur le premier. Cela permet de dessiner une zone de marge autour de chaque bloc, ou un encart en utilisant des valeurs négatives. Les zones de marge sont dessinées dans la couleur définie par le champ Couleur de la ligne secondaire, tandis que le bloc principal utilise la couleur de la ligne principale correspondante. Dans cette capture d'écran, j'ai défini la couleur secondaire sur rouge uni et la couleur principale sur bleu uni ; vous pouvez voir comment différentes valeurs de marge donnent des zones secondaires différentes. On peut s'accrocher aux blocs majeurs et mineurs, donc une utilisation prudente de ces champs peut vous fournir des points d'accrochage utiles sans nécessiter la création d'une grille supplémentaire (bien que cela reste une option, bien sûr).
I think the new modular grid type is a great addition to Inkscape, but it’s a little limited by the lack of some convenience features similar to the new Aspect Ratio option for axonometric grids. I’d love to be able to define a modular grid by telling Inkscape that I want each block to be 40 mm × 30 mm, and have it work out the Gap values required to fit as many blocks as possible onto the page, neatly centered. Or, conversely, set the gap value and number of blocks on the page, and have Inkscape work out the block dimensions. Moving on from grids, there have been some small updates to a couple of the Live Path Effects (LPEs). First of all, the Ruler LPE has gained three extra parameters: Mark Angle, Minor Mark Gap, and Major Mark Gap: The Mark Angle parameter allows you to create rulers in which the tick marks extend from the base path at an arbitrary angle, rather than always being perpendicular to it. The value is in degrees, and can be either positive or negative, depending on which way you want the marks to slant.
Je trouve que le nouveau type de grille modulaire est un excellent ajout à Inkscape, mais il est un peu limité par l'absence de fonctionnalités pratiques, comme la nouvelle option « Rapport hauteur/largeur » pour les grilles axonométriques. J'aimerais pouvoir définir une grille modulaire en indiquant à Inkscape que je souhaite que chaque bloc mesure 40 mm × 30 mm, et qu'Inkscape calcule les valeurs d'espacement nécessaires pour placer le plus de blocs possible sur la page, parfaitement centrés. Ou, inversement, définir la valeur d'espacement et le nombre de blocs sur la page, et laisser Inkscape calculer les dimensions des blocs.
Au-delà des grilles, quelques petites mises à jour ont été apportées à quelques effets de chemin (LPE). Tout d'abord, le LPE de la règle s'est enrichi de trois paramètres supplémentaires : Angle de marque, Écartement mineur et Écartement majeur.
Le paramètre Angle de marque permet de créer des règles dont les graduations s'étendent à partir du tracé de base selon un angle arbitraire, plutôt que d'être toujours perpendiculaires à celui-ci. La valeur est exprimée en degrés et peut être positive ou négative, selon l'inclinaison souhaitée des repères.
The Minor and Major Mark Gap fields let you offset the start of each tick some distance away from the base path. The value is a percentage of the overall mark length, but the mark is also shortened by this amount such that its end point remains the same. This means that if you want to shift the marks away from the base path while retaining their length, you’ll need to adjust the Major Length and/or Minor Length parameter as well. This image (next page, top right) shows the result of using the parameters from the screenshot above – a Mark Angle of 30°, and a Minor Mark Gap of 5. Unfortunately, the Gap fields won’t accept negative values, so they can’t be used to shift the marks out of the opposite side of the base path in order to produce an asymmetric design in which, say, the tick marks extend 1/3 of their length on one side, and 2/3 on the other.
Les champs « Écartement mineur » et « Écartement majeur » permettent de décaler le début de chaque graduation par rapport au tracé de base. Cette valeur représente un pourcentage de la longueur totale du repère, mais le repère est également raccourci de cette valeur afin que son point final reste identique. Cela signifie que si vous souhaitez décaler les repères du tracé de base tout en conservant leur longueur, vous devrez également ajuster les paramètres « Longueur principale » et « Longueur secondaire ».
Cette image (page suivante, en haut à droite) montre le résultat obtenu en utilisant les paramètres de la capture d'écran ci-dessus : un angle de repère de 30° et un écart entre repères mineurs de 5.
Malheureusement, les champs « Écartement » n'acceptent pas de valeurs négatives ; ils ne peuvent donc pas être utilisés pour décaler les repères de l'autre côté du tracé de base afin de produire un dessin asymétrique dans lequel, par exemple, les repères s'étendent sur 1/3 de leur longueur d'un côté et sur 2/3 de l'autre.
The only other LPE to have received an update worthy of the Inkscape 1.4 release notes is Taper Stroke. This adds a new option of ‘Clamp’ for the Start Direction and End Direction parameters. These parameters determine whether the taper at each end veers towards one side or is centered, with the new option cutting the shape off squarely, with no taper at all. To that end I think the use of ‘Clamp’ as the option name is a bad one; ‘None’ or ‘Square’ would have been more descriptive, while ‘Butt’ would have better mirrored the naming used in the Fill & Stroke dialog. The following image shows a line without the LPE applied, then two copies which do have it. The second line has the Start Direction set to ‘Center’ and the End Direction set to ‘Left’. The last line uses ‘Clamp’ and ‘Right’. You can see that the ‘Clamp’ option drastically reduces the length of the line, cutting it off where the taper would usually begin, so you may need to create an artificially long base path if you want to use this option. Next month we’ll continue exploring more of the changes that have been introduced in Inkscape 1.4.
Le seul autre LPE à avoir bénéficié d'une mise à jour digne des notes de version d'Inkscape 1.4 est l'option « Contour fuselé ». Celle-ci ajoute une nouvelle option, « Restreindre », pour les paramètres Direction de départ et Direction de fin. Ces paramètres déterminent si la conicité à chaque extrémité est centrée ou orientée vers un côté, la nouvelle option coupant la forme de manière carrée, sans aucune conicité. À cet égard, je pense que l'utilisation de « Restreindre » comme nom d'option est inappropriée ; « Aucun » ou « Carré » aurait été plus descriptif, tandis que « Bout » aurait mieux reflété le nom utilisé dans la boîte de dialogue Remplissage et contour.
L'image suivante montre une ligne sans LPE appliqué, puis deux copies avec. La deuxième ligne a la direction de départ définie sur « Centre » et la direction de fin sur « Gauche ». La dernière ligne utilise « Restreindre » et « Droite ». Vous pouvez constater que l'option « Restreindre » réduit considérablement la longueur de la ligne, la coupant là où le rétrécissement commencerait normalement. Vous devrez donc peut-être créer un chemin de base artificiellement long si vous souhaitez utiliser cette option.
Le mois prochain, nous continuerons d'explorer les changements introduits dans Inkscape 1.4.