3

I am aware of the "align and distribute" options in Inkscape. However, often I find myself having an existing distribution (e.g. 3 items with equal distances X) that I want to add another item to. I want to keep the distance X between all existing items and add the new item at a distance X from the last item. Just using "align and distribute" again is not useful, since it changes the positions of the other items. In pictures: I have items A, B and C aligned thus (with the distance X):

A <-X-> B <-X-> C

and I want to add another item C like this:

A <-X-> B <-X-> C <-X-> D

If I just add it to the row, select all elements, and use align and distribute->make horizontal gaps equal, I will get

A <-X'-> B <-X'-> C <-X'-> D

with X' different from X, unless I had already put D exactly at distance X from C.

Is there a way to achieve what I am trying to do?

4

Distribute making horizontal gaps equal keeps the rightmost and leftmost items as is, the rest of the objects move. If you want to insert a new object to the left or to the right and keep the rest in their original places use a measuring block - a temporary rectangle like the green one in the next sequence:

enter image description here

Learn the snapping options carefully to be able to place the items exactly. The magenta triangle didn't settle vertically to the same line before aligning the whole row vertically. Alternatively a horizontal guide would help as well. Some other programs keep the item selected either first or last as reference, but that's not true in Inkscape.

1
  • Thanks a lot for the extensive description! Lacking an one-click option to do something like "Take the distance between A and B and apply that to the distance between B and C", this seems to be the best way to do that manually. – Garanthor Mar 23 at 8:55
3

If you already know the exact distance between objects, you can use the Remove Overlap function in the Align and Distribute panel to achieve your task. Despite the name of this function, shapes do not actually have to overlap before you can use it.

Here I have an example below in which all 3 shapes are all 50 units apart*. I also have Smooth Nodes snapping switched on, to get the extra yellow circle to snap to the blue.

  1. Place the extra circle to snap to the end of the line.

  2. In the Align and Distribute panel, set remove overlaps Horizontal to the distance required.

  3. Select all the shapes and hit the button to apply

  4. Finally you can move the shapes back into position. Here I used a guide for snapping. I also held down Ctrl while moving the circles back into position to constrain the vertical position.

enter image description here

*Note: If you don't know the exact distance between each shape, you can also use the Remove Overlaps function to set that up in the first instance, so that you do know the exact distance. Or you could measure the distance with the Measure Tool.

4
  • Thanks a lot, this is very useful! While it does not solve the problem at hand directly, it will be very useful for my future illustrations where I can take that into account from the very beginning. – Garanthor Mar 23 at 8:56
  • @Geranthor - how does it not solve the problem at hand directly? – Billy Kerr Mar 23 at 9:06
  • @Garanthor - If the problem is that you don't know the existing distance, another possibility is to measure it with the Measure Tool. I've updated my answer with that. – Billy Kerr Mar 23 at 9:20
  • Thanks for the tip with measuring the distance, in combination that does solve the problem! I guess at this point it comes down to personal preference when comparing your solution to that of user287001 above. Thanks again! – Garanthor Mar 23 at 18:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.