Skip to content

Wrong position of sub/superscripts in math on big content #2122

@Omikhleia

Description

@Omikhleia

Observed
(the square root comes from #2119, but this is orthogonal to the issue)

image
image

The exponents on "big" blocks (bracketed blocs with fractions, etc.) are really off.

Note

There's some commented out code in our implementation, let's check what restoring it does:

diff --git a/packages/math/base-elements.lua b/packages/math/base-elements.lua
index ea58071e..18af78cb 100644
--- a/packages/math/base-elements.lua
+++ b/packages/math/base-elements.lua
@@ -610,7 +610,7 @@ function elements.subscript:shape ()
       self.sub.relX = self.width + subShift
       self.sub.relY = SILE.types.length(math.max(
          constants.subscriptShiftDown * scaleDown,
-         --self.base.depth + constants.subscriptBaselineDropMin * scaleDown,
+         (self.base.depth + constants.subscriptBaselineDropMin * scaleDown):tonumber(),
          (self.sub.height - constants.subscriptTopMax * scaleDown):tonumber()
       ))
       if self:is_a(elements.underOver) or self:is_a(elements.stackbox) or self.base.largeop then
@@ -629,7 +629,7 @@ function elements.subscript:shape ()
       self.sup.relY = SILE.types.length(math.max(
          isCrampedMode(self.mode) and constants.superscriptShiftUpCramped * scaleDown
             or constants.superscriptShiftUp * scaleDown, -- or cramped
-         --self.base.height - constants.superscriptBaselineDropMax * scaleDown,
+         (self.base.height - constants.superscriptBaselineDropMax * scaleDown):tonumber(),
          (self.sup.depth + constants.superscriptBottomMin * scaleDown):tonumber()
       )) * -1
       if self:is_a(elements.underOver) or self:is_a(elements.stackbox) or self.base.largeop then

Result:

image
image

--> Maybe can we bisect why this code was commented out? It seems it was doing something more or less expected!

Metadata

Metadata

Assignees

Labels

bugSoftware bug issuemodules:packagesIssue relates to core or 3rd party packages

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions