18

I think the question explains it all. I'm increasing the stroke size of an arrow, but the arrow head becomes really large. How can I prevent the arrowhead from increasing with increasing stroke.

Btw, I tried different arrowhead shapes. And this didn't help.

2
  • 2
    Possible duplicate of Inkscape: scale line without scaling arrowhead (marker)
    – Luciano
    Commented Nov 14, 2017 at 9:25
  • 2
    @Luciano Not a duplicate! This one wants to change stroke width, the other wants to change the length., both want to keep the arrowheads intact.
    – user82991
    Commented Nov 17, 2017 at 19:20

3 Answers 3

15

2022 Update: The functionality described below is now possible directly within the GUI in Inkscape 1.2 which has been redesigned. I'll leave the following answer unedited, but please be aware this is an old answer for Inkscape 0.92.

You can use the XML Editor to adjust the scaling and positioning of the arrow head, leaving the stroke width unchanged.

  1. Open the XML Editor and find the svg:defs id.

  2. Expand the defs id, and locate the marker id, and expand that too, and you will find a path id.

  3. Select the path ID, click on the Transform property. Type in a new scale value to adjust the size of the arrow head. Press Ctrl+Enter to commit the change.

  4. If the arrow head needs to be moved, which it probably will if you made the arrow head smaller, click on the marker id and change the refX property to move the arrow slightly to one side. Press Ctrl+Enter to commit the change.

This screenshot shows altering the marker id RefX, and the path id Transform scale value:

enter image description here

The beauty of this is that it doesn't break the arrow head functionality of the stroke. You can still edit the path, and the arrow head will move as expected.

enter image description here

Also, you can use this technique for multiple paths – each marker id, and path id can be adjusted separately.

enter image description here

3
  • 4
    Being new at this, it took me a while to figure out these instructions. Adding preliminary steps would help this answer: - Select the arrow you want to modify - Open XML editor with shift+ctr+x - The path ID for the arrow will already be selected. Look in the style property to find the marker ID. - Follow steps 2 onward and adjust the properties of the marker ID you just found
    – Dominik
    Commented Jan 31, 2020 at 16:21
  • Billy Kerr could you please add a new answer, showing the new Inkscape 1.2 functionality in the UI? Thanks!
    – Fabio
    Commented Aug 27, 2022 at 9:43
  • 2
    @Fabio Just add an arrow head to a stroke, and you will see the new UI. It's fairly self explanatory.
    – Billy Kerr
    Commented Aug 27, 2022 at 9:52
8
  1. Draw a horizontal line and set the arrowheads you like.
  2. Scale the line until it has the thickness you need.
  3. Duplicate the line and do Path > Stroke to Path
  4. Ungroup. The two arrowheads are now separate objects.
  5. Scale them down to the right size.
  6. Select one arrowhead, do Objects > Object to Marker. Repeat with the other.
  7. You can now select the properly sized arrowheads in the Stroke Style palette and use them normally.
2
  • Thanks -- the steps up to number 5 were sufficient for me. Commented Sep 8, 2019 at 20:15
  • Simpler solution than the accepted answer!
    – V-Red
    Commented Sep 2, 2020 at 20:31
4

Inkscape's marker collection has the arrowheads in several sizes as an inbuilt workaround.

If the available sizes are wrong, another workaround keeping the default behaviour of the program is to duplicate the stroke without the arrowheads and make the duplicate thicker. It must be shortened a little, too. This method is not useful if there's plenty of paths with the same problem or they must still stay easily editable.

enter image description here

The wanted selection is possible in the objects panel when there are more than one object at the same place.

The shortening:

  • select the stroke
  • take the node editing tool
  • double-click at the new endpoint, a new node appears
  • select the old endpoint
  • press DEL

In the screenshot the left end is still unshortened

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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