From 5ccc6876194a3f9329021bf22e7c8d0ed6bf74a1 Mon Sep 17 00:00:00 2001 From: Alex Saveau Date: Mon, 24 Apr 2023 02:04:04 -0700 Subject: [PATCH] Obey alignment in matrices (#892) --- library/src/math/matrix.rs | 6 ++- tests/ref/math/alignment.png | Bin 9752 -> 23935 bytes tests/typ/math/alignment.typ | 79 +++++++++++++++++++++++++++++++---- 3 files changed, 76 insertions(+), 9 deletions(-) diff --git a/library/src/math/matrix.rs b/library/src/math/matrix.rs index 2243eb386..956c7f8af 100644 --- a/library/src/math/matrix.rs +++ b/library/src/math/matrix.rs @@ -272,8 +272,10 @@ fn layout_mat_body(ctx: &mut MathContext, rows: &[Vec]) -> SourceResult let mut y = Abs::zero(); for ((cell, &ascent), &descent) in col.into_iter().zip(&ascents).zip(&descents) { let cell = cell.into_aligned_frame(ctx, &points, Align::Center); - let pos = - Point::new(x + (rcol - cell.width()) / 2.0, y + ascent - cell.ascent()); + let pos = Point::new( + if points.is_empty() { x + (rcol - cell.width()) / 2.0 } else { x }, + y + ascent - cell.ascent(), + ); frame.push_frame(pos, cell); y += ascent + descent + row_gap; } diff --git a/tests/ref/math/alignment.png b/tests/ref/math/alignment.png index 45b0cd8628a6e4cd27cb9ee8f36af2edf717ecba..2e3c3d5ddfabb70a57c58cbdd6aeb5121da6f57a 100644 GIT binary patch literal 23935 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