From 372476323f8d415b92b11b3970b8120838a2ef2d Mon Sep 17 00:00:00 2001 From: tingerrr Date: Tue, 17 Oct 2023 11:48:46 +0200 Subject: [PATCH] Add `reverse` parameter to `cases` (#2370) --- crates/typst-library/src/math/matrix.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crates/typst-library/src/math/matrix.rs b/crates/typst-library/src/math/matrix.rs index 1dee5434b..91310ed3a 100644 --- a/crates/typst-library/src/math/matrix.rs +++ b/crates/typst-library/src/math/matrix.rs @@ -270,6 +270,15 @@ pub struct CasesElem { #[default(Delimiter::Brace)] pub delim: Delimiter, + /// Whether the direction of cases should be reversed. + /// + /// ```example + /// #set math.cases(reverse: true) + /// $ cases(1, 2) = x $ + /// ``` + #[default(false)] + pub reverse: bool, + /// The gap between branches. /// /// ```example @@ -295,7 +304,14 @@ impl LayoutMath for CasesElem { FixedAlign::Start, self.gap(ctx.styles()), )?; - layout_delimiters(ctx, frame, Some(delim.open()), None, self.span()) + + let (open, close) = if self.reverse(ctx.styles()) { + (None, Some(delim.close())) + } else { + (Some(delim.open()), None) + }; + + layout_delimiters(ctx, frame, open, close, self.span()) } }