Get numbering of page counter from style chain (#5589)

This commit is contained in:
Eric Biedert 2024-12-16 21:23:13 +01:00 committed by GitHub
parent 75273937f7
commit 51020fcf3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 14 deletions

View File

@ -366,20 +366,22 @@ impl Counter {
.custom()
.or_else(|| {
let styles = styles?;
let CounterKey::Selector(Selector::Elem(func, _)) = self.0 else {
return None;
};
if func == HeadingElem::elem() {
HeadingElem::numbering_in(styles).clone()
} else if func == FigureElem::elem() {
FigureElem::numbering_in(styles).clone()
} else if func == EquationElem::elem() {
EquationElem::numbering_in(styles).clone()
} else if func == FootnoteElem::elem() {
Some(FootnoteElem::numbering_in(styles).clone())
} else {
None
match self.0 {
CounterKey::Page => PageElem::numbering_in(styles).clone(),
CounterKey::Selector(Selector::Elem(func, _)) => {
if func == HeadingElem::elem() {
HeadingElem::numbering_in(styles).clone()
} else if func == FigureElem::elem() {
FigureElem::numbering_in(styles).clone()
} else if func == EquationElem::elem() {
EquationElem::numbering_in(styles).clone()
} else if func == FootnoteElem::elem() {
Some(FootnoteElem::numbering_in(styles).clone())
} else {
None
}
}
_ => None,
}
})
.unwrap_or_else(|| NumberingPattern::from_str("1.1").unwrap().into());

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

View File

@ -102,6 +102,14 @@ B
#set page(numbering: "1 / 1", margin: (bottom: 20pt))
#counter(page).update(5)
--- counter-page-display ---
// Counter display should use numbering from style chain.
#set page(
numbering: "A",
margin: (bottom: 20pt),
footer: context align(center, counter(page).display())
)
--- counter-figure ---
// Count figures.
#figure(numbering: "A", caption: [Four 'A's], kind: image, supplement: "Figure")[_AAAA!_]