Fix optimized linebreaks without justification (#5236)

This commit is contained in:
Laurenz 2024-10-18 15:10:22 +02:00 committed by GitHub
parent 6057df7c4d
commit 711a2d8807
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 17 additions and 1 deletions

View File

@ -597,7 +597,7 @@ fn raw_cost(
let badness = if ratio < metrics.min_ratio(approx) {
// Overfull line always has maximum cost.
1_000_000.0
} else if justify || ratio < 0.0 {
} else if breakpoint != Breakpoint::Mandatory || justify || ratio < 0.0 {
// If the line shall be justified or needs shrinking, it has normal
// badness with cost 100|ratio|^3. We limit the ratio to 10 as to not
// get to close to our maximum cost.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -123,3 +123,19 @@ For info see #link("https://myhost.tld").
// - shaping that results in multiple glyphs in the same cluster
#set text(font: "Noto Sans Thai")
#h(85pt) งบิก
--- issue-5235-linebreak-optimized-without-justify ---
#set page(width: 207pt, margin: 15pt)
#set text(11pt)
#set par(linebreaks: "simple")
Some texts feature many longer
words. Those are often exceedingly
challenging to break in a visually
pleasing way.
#set par(linebreaks: "optimized")
Some texts feature many longer
words. Those are often exceedingly
challenging to break in a visually
pleasing way.