summaryrefslogtreecommitdiff
path: root/library/src/layout/page.rs
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/layout/page.rs')
-rw-r--r--library/src/layout/page.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/library/src/layout/page.rs b/library/src/layout/page.rs
index eeb74a55..93ee08ce 100644
--- a/library/src/layout/page.rs
+++ b/library/src/layout/page.rs
@@ -2,7 +2,7 @@ use std::ptr;
use std::str::FromStr;
use super::{AlignNode, ColumnsNode};
-use crate::meta::{Counter, CounterAction, CounterKey, CounterNode, Numbering};
+use crate::meta::{Counter, CounterKey, Numbering};
use crate::prelude::*;
/// Layouts its child onto one or multiple pages.
@@ -214,8 +214,10 @@ pub struct PageNode {
/// footer: [
/// #set align(right)
/// #set text(8pt)
- /// #counter(page).get("1") of
- /// #counter(page).final("I")
+ /// #counter(page).display(
+ /// "1 of I",
+ /// both: true,
+ /// )
/// ]
/// )
///
@@ -311,12 +313,13 @@ impl PageNode {
let header_ascent = self.header_ascent(styles);
let footer = self.footer(styles).or_else(|| {
self.numbering(styles).map(|numbering| {
- CounterNode::new(
- Counter::new(CounterKey::Page),
- CounterAction::Both(numbering),
- )
- .pack()
- .aligned(self.number_align(styles))
+ let both = match &numbering {
+ Numbering::Pattern(pattern) => pattern.pieces() >= 2,
+ Numbering::Func(_) => true,
+ };
+ Counter::new(CounterKey::Page)
+ .display(numbering, both)
+ .aligned(self.number_align(styles))
})
});
let footer_descent = self.footer_descent(styles);