mirror of
https://github.com/typst/typst
synced 2025-05-14 17:15:28 +08:00
Fix figure centering (#4276)
Co-authored-by: PgBiel <9021226+PgBiel@users.noreply.github.com>
This commit is contained in:
parent
06433bc95f
commit
e6739ecc2f
@ -14,8 +14,8 @@ use crate::introspection::{
|
|||||||
Count, Counter, CounterKey, CounterUpdate, Locatable, Location,
|
Count, Counter, CounterKey, CounterUpdate, Locatable, Location,
|
||||||
};
|
};
|
||||||
use crate::layout::{
|
use crate::layout::{
|
||||||
Alignment, BlockElem, Em, HAlignment, Length, OuterVAlignment, PlaceElem, VAlignment,
|
AlignElem, Alignment, BlockElem, Em, HAlignment, Length, OuterVAlignment, PlaceElem,
|
||||||
VElem,
|
VAlignment, VElem,
|
||||||
};
|
};
|
||||||
use crate::model::{Numbering, NumberingPattern, Outlinable, Refable, Supplement};
|
use crate::model::{Numbering, NumberingPattern, Outlinable, Refable, Supplement};
|
||||||
use crate::text::{Lang, Region, TextElem};
|
use crate::text::{Lang, Region, TextElem};
|
||||||
@ -317,11 +317,7 @@ impl Show for Packed<FigureElem> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Wrap the contents in a block.
|
// Wrap the contents in a block.
|
||||||
realized = BlockElem::new()
|
realized = BlockElem::new().with_body(Some(realized)).pack().spanned(self.span());
|
||||||
.with_body(Some(realized))
|
|
||||||
.pack()
|
|
||||||
.spanned(self.span())
|
|
||||||
.aligned(Alignment::CENTER);
|
|
||||||
|
|
||||||
// Wrap in a float.
|
// Wrap in a float.
|
||||||
if let Some(align) = self.placement(styles) {
|
if let Some(align) = self.placement(styles) {
|
||||||
@ -340,7 +336,10 @@ impl ShowSet for Packed<FigureElem> {
|
|||||||
fn show_set(&self, _: StyleChain) -> Styles {
|
fn show_set(&self, _: StyleChain) -> Styles {
|
||||||
// Still allows breakable figures with
|
// Still allows breakable figures with
|
||||||
// `show figure: set block(breakable: true)`.
|
// `show figure: set block(breakable: true)`.
|
||||||
BlockElem::set_breakable(false).wrap().into()
|
let mut map = Styles::new();
|
||||||
|
map.set(BlockElem::set_breakable(false));
|
||||||
|
map.set(AlignElem::set_alignment(Alignment::CENTER));
|
||||||
|
map
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
tests/ref/figure-align.png
Normal file
BIN
tests/ref/figure-align.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 926 B |
@ -23,6 +23,13 @@ We can clearly see that @fig-cylinder and
|
|||||||
caption: [The complex table.],
|
caption: [The complex table.],
|
||||||
) <tab-complex>
|
) <tab-complex>
|
||||||
|
|
||||||
|
--- figure-align ---
|
||||||
|
#show figure: set align(start)
|
||||||
|
#figure(
|
||||||
|
rect[This is \ left],
|
||||||
|
caption: [Start-aligned]
|
||||||
|
)
|
||||||
|
|
||||||
--- figure-table ---
|
--- figure-table ---
|
||||||
// Testing figures with tables.
|
// Testing figures with tables.
|
||||||
#figure(
|
#figure(
|
||||||
@ -37,6 +44,7 @@ We can clearly see that @fig-cylinder and
|
|||||||
--- figure-theorem ---
|
--- figure-theorem ---
|
||||||
// Testing show rules with figures with a simple theorem display
|
// Testing show rules with figures with a simple theorem display
|
||||||
#show figure.where(kind: "theorem"): it => {
|
#show figure.where(kind: "theorem"): it => {
|
||||||
|
set align(start)
|
||||||
let name = none
|
let name = none
|
||||||
if not it.caption == none {
|
if not it.caption == none {
|
||||||
name = [ #emph(it.caption.body)]
|
name = [ #emph(it.caption.body)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user