Disable justification in raw(block: true, ...) (#4889)

Co-authored-by: Laurenz <laurmaedje@gmail.com>
This commit is contained in:
Sébastien d'Herbais de Thun 2024-11-04 10:37:29 +01:00 committed by GitHub
parent cb1aad3a0c
commit 692d846d25
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 12 additions and 30 deletions

View File

@ -27,10 +27,9 @@ pub fn finalize(
};
// Stack the lines into one frame per region.
let shrink = ParElem::shrink_in(styles);
lines
.iter()
.map(|line| commit(engine, p, line, width, region.y, shrink, locator, styles))
.map(|line| commit(engine, p, line, width, region.y, locator, styles))
.collect::<SourceResult<_>>()
.map(Fragment::frames)
}

View File

@ -417,7 +417,6 @@ pub fn commit(
line: &Line,
width: Abs,
full: Abs,
shrink: bool,
locator: &mut SplitLocator<'_>,
styles: StyleChain,
) -> SourceResult<Frame> {
@ -469,7 +468,7 @@ pub fn commit(
let shrinkability = line.shrinkability();
let stretchability = line.stretchability();
if remaining < Abs::zero() && shrinkability > Abs::zero() && shrink {
if remaining < Abs::zero() && shrinkability > Abs::zero() {
// Attempt to reduce the length of the line, using shrinkability.
justification_ratio = (remaining / shrinkability).max(-1.0);
remaining = (remaining + shrinkability).min(Abs::zero());

View File

@ -126,15 +126,6 @@ pub struct ParElem {
#[resolve]
pub hanging_indent: Length,
/// Indicates whether an overflowing line should be shrunk.
///
/// This property is set to `false` on raw blocks, because shrinking a line
/// could visually break the indentation.
#[ghost]
#[internal]
#[default(true)]
pub shrink: bool,
/// The contents of the paragraph.
#[external]
#[required]

View File

@ -473,7 +473,7 @@ impl ShowSet for Packed<RawElem> {
out.set(TextElem::set_size(TextSize(Em::new(0.8).into())));
out.set(TextElem::set_font(FontList(vec![FontFamily::new("DejaVu Sans Mono")])));
if self.block(styles) {
out.set(ParElem::set_shrink(false));
out.set(ParElem::set_justify(false));
}
out
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

View File

@ -594,23 +594,16 @@ fn main() {
}
```
--- issue-3191-raw-indent-shrink ---
// Spaces in raw blocks should not be shrunk as it would mess up the indentation
// of code.
#set par(justify: true)
--- issue-3191-raw-justify ---
// Raw blocks should not be justified by default.
```
a b c --------------------
```
#show raw.where(block: true): block.with(
fill: luma(240),
inset: 10pt,
)
#block(
width: 60%,
```py
for x in xs:
print("x=",x)
```
)
#show raw: set par(justify: true)
```
a b c --------------------
```
--- issue-3191-raw-normal-paragraphs-still-shrink ---
// In normal paragraphs, spaces should still be shrunk.