Add \scriptspace after superscripts and subscripts
Summary: Plain TeX assigns `\scriptspace=0.5pt`, which is used in Rules 18bcd in the TeXbook's Appendix G. Test Plan: - Look at `x^{x^{x_{x_{x_{x_x}}}}}\biggr|`, see a gap that looks similar to the one produced by real TeX. - Look at the huxley tests, see that they look reasonable. Make sure that all changes to other huxley tests are now correct, and only changed because of this. Reviewers: emily Reviewed By: emily Subscribers: jessie Differential Revision: http://phabricator.khanacademy.org/D12763
10
buildTree.js
|
@ -196,6 +196,11 @@ var groupTypes = {
|
||||||
p = fontMetrics.metrics.sup2;
|
p = fontMetrics.metrics.sup2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var multiplier = Style.TEXT.sizeMultiplier *
|
||||||
|
options.style.sizeMultiplier;
|
||||||
|
// \scriptspace is 0.5pt = 0.05em * 10pt/em
|
||||||
|
var scriptspace = 0.05 / multiplier + "em";
|
||||||
|
|
||||||
var supsub;
|
var supsub;
|
||||||
|
|
||||||
if (!group.value.sup) {
|
if (!group.value.sup) {
|
||||||
|
@ -206,6 +211,7 @@ var groupTypes = {
|
||||||
sub.height - 0.8 * fontMetrics.metrics.xHeight);
|
sub.height - 0.8 * fontMetrics.metrics.xHeight);
|
||||||
|
|
||||||
subwrap.style.top = v + "em";
|
subwrap.style.top = v + "em";
|
||||||
|
subwrap.style.marginRight = scriptspace;
|
||||||
|
|
||||||
subwrap.depth = subwrap.depth + v;
|
subwrap.depth = subwrap.depth + v;
|
||||||
subwrap.height = 0;
|
subwrap.height = 0;
|
||||||
|
@ -221,6 +227,7 @@ var groupTypes = {
|
||||||
sup.depth + 0.25 * fontMetrics.metrics.xHeight);
|
sup.depth + 0.25 * fontMetrics.metrics.xHeight);
|
||||||
|
|
||||||
supwrap.style.top = -u + "em";
|
supwrap.style.top = -u + "em";
|
||||||
|
supwrap.style.marginRight = scriptspace;
|
||||||
|
|
||||||
supwrap.height = supwrap.height + u;
|
supwrap.height = supwrap.height + u;
|
||||||
supwrap.depth = 0;
|
supwrap.depth = 0;
|
||||||
|
@ -252,6 +259,9 @@ var groupTypes = {
|
||||||
supwrap.style.top = -u + "em";
|
supwrap.style.top = -u + "em";
|
||||||
subwrap.style.top = v + "em";
|
subwrap.style.top = v + "em";
|
||||||
|
|
||||||
|
supwrap.style.marginRight = scriptspace;
|
||||||
|
subwrap.style.marginRight = scriptspace;
|
||||||
|
|
||||||
supwrap.height = supwrap.height + u;
|
supwrap.height = supwrap.height + u;
|
||||||
supwrap.depth = 0;
|
supwrap.depth = 0;
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
@ -117,5 +117,11 @@
|
||||||
"name": "VerticalSpacing",
|
"name": "VerticalSpacing",
|
||||||
"screenSize": [1024, 768],
|
"screenSize": [1024, 768],
|
||||||
"url": "http://localhost:7936/test/huxley/test.html?pre=potato<br>blah&post=<br>moo&m=x^{\\Huge y}z"
|
"url": "http://localhost:7936/test/huxley/test.html?pre=potato<br>blah&post=<br>moo&m=x^{\\Huge y}z"
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "SupSubHorizSpacing",
|
||||||
|
"screenSize": [1024, 768],
|
||||||
|
"url": "http://localhost:7936/test/huxley/test.html?m=x^{x^{x}}\\Big|x_{x_{x_{x_{x}}}}\\bigg|x^{x^{x_{x_{x_{x_{x}}}}}}\\bigg|"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
BIN
test/huxley/SupSubHorizSpacing.hux/firefox-1.png
Normal file
After Width: | Height: | Size: 23 KiB |
5
test/huxley/SupSubHorizSpacing.hux/record.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"action": "screenshot"
|
||||||
|
}
|
||||||
|
]
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |