summaryrefslogtreecommitdiff
path: root/src/library/page.rs
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2021-10-28 21:25:03 +0200
committerLaurenz <laurmaedje@gmail.com>2021-11-02 10:39:45 +0100
commit8ccb7d6f15a2fbb44247c143b3dd821e44e0d6eb (patch)
treea58b538e34418c035b55e880eaf5a1ffc146a6da /src/library/page.rs
parent5b344b663a3d224134923eea0d67ebf44c069b07 (diff)
Smallcaps, sub- and superscript, ligature ctrls...
Diffstat (limited to 'src/library/page.rs')
-rw-r--r--src/library/page.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/library/page.rs b/src/library/page.rs
index 7e1bd05b..9dcb5ba3 100644
--- a/src/library/page.rs
+++ b/src/library/page.rs
@@ -3,14 +3,13 @@ use crate::style::{Paper, PaperClass};
/// `page`: Configure pages.
pub fn page(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
- let paper = match args.named::<Spanned<Str>>("paper")?.or_else(|| args.find()) {
- Some(name) => match Paper::from_name(&name.v) {
- None => bail!(name.span, "invalid paper name"),
- paper => paper,
- },
- None => None,
- };
+ castable! {
+ Paper: "string",
+ Value::Str(string) => Paper::from_name(&string)
+ .ok_or("invalid paper name")?,
+ }
+ let paper = args.named::<Paper>("paper")?.or_else(|| args.find());
let width = args.named("width")?;
let height = args.named("height")?;
let margins = args.named("margins")?;