Precisely adjusting contour line only on vertical or horizontal axis?

Previous topic - Next topic

kenerling

Hi all,

"Stock" Windows 10 Home, Scribus 1.6.2.

At Properties > Shape > Edit > (verify that "Move nodes" is pressed and check "Edit Contour Line"), there are the choices of "Enlarge/Shrink the size of the path by shown %" and "Enlarge/Reduce the size of the path by shown value."

Both apply the indicated modification to all sides of the contour line: top, bottom, left, right.

⇒ How does one constrain those modifications to only the vertical (top, bottom) or horizontal (left, right) axis? And, for that matter, to only any one side?

There surely has to be some combination of modifier keys to do that, yes?

While experimenting with modifier keys, I did discover that one can control-click to lock a node to its two attached neighbors, but moving "by hand" in this manner lacks precision... EDIT: And I'll add that I know that any one node can be selected and moved using the X-Pos and Y-Pos boxes, but that's a bit laborious.

Thanks in advance and cheers to all.

nitramr

Quote⇒ How does one constrain those modifications to only the vertical (top, bottom) or horizontal (left, right) axis? And, for that matter, to only any one side?

That is not possible in 1.6.x
Scribus has only a very basic vector path editing functionality. For more advanced operations, it is recommended to use a vector editing software, like Inkscape.

For Scribus 1.7.x there is a planned reimplementation of the node editing functionality.
https://bugs.scribus.net/view.php?id=17364

But it is still pending, and doesn't touch the scale functionality.

You could describe which behavior you expect, and we can check if we can do something.

kenerling

Thanks for your quick response, tim_occ.

I didn't mention in my original post that I'm speaking of adding padding around an image frame (or any other type of frame, I'd think) inserted into a flow of text. Although that might not change anything...

Again, thanks in any case, and cheers.


MrB

If it's just expanding an image frame you need, click on the Edit shape button on Properties Palette. Select edit Contour line. Then click the enlarge button (by size or %). Ensure your text is set to flow around the Contour line.

Here's some examples:
https://explore.psl.eu/en/tools-and-training/tutorials/scribus-2-tools-text

a.l.e


kenerling

Quote from: a.l.e on February 28, 2025, 08:50:28 AMwhat about using the keyboard?

That's cool; TIL!

But am I correct in understanding that there's no way to constrain the "% to Enlarge or Shrink By" and "Value to Enlarge or Shrink by" boxes to just one axis or any one side?

AdmFubar

Tried this out to see how well it works. While testing it, I noticed an oddity. The nodes window expands slightly when selecting the Edit Contour Line is selected, and shrinks slightly when unchecking. Anyone else noticed this?
Using Scribus 1.5.8 & 1.6.3, 1.7.0 openSUSE 15.5
Advanced hobbyist

nitramr

I've been thinking about how to make spacing settings more convenient.

The industry standard is one input field for the spacing (or 4 in case of a box).

Depending on which text wrap mode is selected, a different "Path" is used that affects the text spacing.

What if we introduce a new type, e.g. Margin Path? All text wrap options only consider this path for spacing.

Now, if the spacing is changed in the user interface, this Margin Path is recalculated based on the original path.

Example 1:
The user selects the object shape as the text wrap option and a spacing of 5mm. The Margin Path is then a copy of the shape path, scaled by 5mm on each side.

Example 2:
The user selects the Bounding Box as the text wrap option. With this option, 4 input fields are displayed for each side. The user only sets a spacing of 5mm on the left. The margin path is then a copy of the bounding box, which has been enlarged by 5mm on the left.

With this implementation, the distances can be manipulated without having to change the original paths.

Just for reference: QRegion PageItem::textInteractionRegion(double xOffset, double yOffset) const

a.l.e

"margins path" sound like a good idea!

sadly, i fear that only rectangles have four sides and a simple way to use the values the user has set in the four input fields.

except if you already have a plan on how to manage them, i would separate the development of the "margins path" from the usage of the four values.

nitramr

This is just a test.

If text wrap method "bounding box" is used, you have 4 input fields for each side. I think this is the standard case for images.

For the other methods, you will only have 1 input field for the path offset.
In the sla files, we have to save all 4 values, but this is not done yet.

AdmFubar

Circular objects could have upper, lower, left, and right margins, this could be expanded to other shapes.
Using Scribus 1.5.8 & 1.6.3, 1.7.0 openSUSE 15.5
Advanced hobbyist

nitramr

QuoteCircular objects could have upper, lower, left, and right margins, this could be expanded to other shapes.

Sounds a little overengineered to me. For a rectangle, it is very easy to extend it in a different direction. But for all other shapes it is very complicated. Even for circles. Let's assume you have a perfect circle, and you just want to extend the left side. What would be the expected shape?

a) egg shape (stretch)
b) pill (offset)

Perhaps it seems easier for primitive geometry, but for more complex shapes it is very hard to find a good solution.

I prefer to keep it simple and just allow 4 inputs for bounding box method and 1 input to offset all other shapes.