From 04f13b9be8ed36d080da6cbfc4c711b5429f913b Mon Sep 17 00:00:00 2001 From: Emily Eisenberg Date: Wed, 27 Aug 2014 01:12:15 -0700 Subject: [PATCH] Fix font sizing issues Summary: In LaTeX, large delimiters are the same font size as they are at a normal size, regardless of the actual size. This means that we need to scale up the font size in the inner nodes, which is annoying because we run into the same problem we had with \Huge, etc in those nodes. Thus, this fixes both problems at once. The problem was that when we used our baseline-align-hack and then increased the font size inside of one of the middle (display: block and height: 0) nodes, the node with the increased font size would shift downards (misaligning its baseline). To fix this, we add a method for calculating the maximum font size used in each of the nodes, and adding a small node with this font size to each of the other nodes (including the fix-ie node). This shifts all of the nodes down the same amount, and gets their baselines aligned. Test Plan: - Do dumb things by putting \Huge and \big in places they shouldn't be, and make sure they behave responsibly - Do the same thing in IE 8, 9, 10, 11, Safari, Firefox, and make sure they all behave the same (to some approximation) - Make sure the new huxley image looks good, and the images that changed don't have significant changes Reviewers: alpert Reviewed By: alpert Differential Revision: http://phabricator.khanacademy.org/D12684 --- Options.js | 26 +--- buildTree.js | 143 +++++++++++++----- domTree.js | 3 +- static/katex.less | 23 +-- test/huxley/DeepFontSizing.hux/firefox-1.png | Bin 0 -> 26101 bytes test/huxley/DeepFontSizing.hux/record.json | 5 + test/huxley/DelimiterSizing.hux/firefox-1.png | Bin 16097 -> 16120 bytes test/huxley/Huxleyfile.json | 12 ++ test/huxley/Overline.hux/firefox-1.png | Bin 14934 -> 14974 bytes test/huxley/VerticalSpacing.hux/firefox-1.png | Bin 0 -> 21328 bytes test/huxley/VerticalSpacing.hux/record.json | 5 + 11 files changed, 146 insertions(+), 71 deletions(-) create mode 100644 test/huxley/DeepFontSizing.hux/firefox-1.png create mode 100644 test/huxley/DeepFontSizing.hux/record.json create mode 100644 test/huxley/VerticalSpacing.hux/firefox-1.png create mode 100644 test/huxley/VerticalSpacing.hux/record.json diff --git a/Options.js b/Options.js index 8d2a8d032..ca33a30bd 100644 --- a/Options.js +++ b/Options.js @@ -1,14 +1,8 @@ -function Options(style, size, color, deep, parentStyle, parentSize) { +function Options(style, size, color, parentStyle, parentSize) { this.style = style; this.color = color; this.size = size; - // TODO(emily): Get rid of deep when we can actually use sizing everywhere - if (deep === undefined) { - deep = false; - } - this.deep = deep; - if (parentStyle === undefined) { parentStyle = style; } @@ -21,28 +15,20 @@ function Options(style, size, color, deep, parentStyle, parentSize) { } Options.prototype.withStyle = function(style) { - return new Options(style, this.size, this.color, this.deep, - this.style, this.size); + return new Options(style, this.size, this.color, this.style, this.size); }; Options.prototype.withSize = function(size) { - return new Options(this.style, size, this.color, this.deep, - this.style, this.size); + return new Options(this.style, size, this.color, this.style, this.size); }; Options.prototype.withColor = function(color) { - return new Options(this.style, this.size, color, this.deep, - this.style, this.size); -}; - -Options.prototype.deepen = function() { - return new Options(this.style, this.size, this.color, true, - this.parentStyle, this.parentSize); + return new Options(this.style, this.size, color, this.style, this.size); }; Options.prototype.reset = function() { - return new Options(this.style, this.size, this.color, this.deep, - this.style, this.size); + return new Options( + this.style, this.size, this.color, this.style, this.size); }; var colorMap = { diff --git a/buildTree.js b/buildTree.js index 6e8b654fa..d9eeb10e7 100644 --- a/buildTree.js +++ b/buildTree.js @@ -21,6 +21,7 @@ var buildExpression = function(expression, options, prev) { var makeSpan = function(classes, children, color) { var height = 0; var depth = 0; + var maxFontSize = 0; if (children) { for (var i = 0; i < children.length; i++) { @@ -30,10 +31,14 @@ var makeSpan = function(classes, children, color) { if (children[i].depth > depth) { depth = children[i].depth; } + if (children[i].maxFontSize > maxFontSize) { + maxFontSize = children[i].maxFontSize; + } } } - var span = new domTree.span(classes, children, height, depth); + var span = new domTree.span( + classes, children, height, depth, maxFontSize); if (color) { span.style.color = color; @@ -42,6 +47,17 @@ var makeSpan = function(classes, children, color) { return span; }; +var makeFontSizer = function(options, fontSize) { + var fontSizeInner = makeSpan([], [new domTree.textNode("\u200b")]); + fontSizeInner.style.fontSize = (fontSize / options.style.sizeMultiplier) + "em"; + + var fontSizer = makeSpan( + ["fontsize-ensurer", "reset-" + options.size, "size5"], + [fontSizeInner]); + + return fontSizer; +}; + var groupToType = { mathord: "mord", textord: "mord", @@ -142,7 +158,7 @@ var groupTypes = { text: function(group, options, prev) { return makeSpan(["text mord", options.style.cls()], - [buildGroup(group.value, options.deepen())] + [buildGroup(group.value, options.reset())] ); }, @@ -151,18 +167,16 @@ var groupTypes = { if (group.value.sup) { var sup = buildGroup(group.value.sup, - options.withStyle(options.style.sup()).deepen()); + options.withStyle(options.style.sup())); var supmid = makeSpan( [options.style.reset(), options.style.sup().cls()], [sup]); - var supwrap = makeSpan(["msup", options.style.reset()], [supmid]); } if (group.value.sub) { var sub = buildGroup(group.value.sub, - options.withStyle(options.style.sub()).deepen()); + options.withStyle(options.style.sub())); var submid = makeSpan( [options.style.reset(), options.style.sub().cls()], [sub]); - var subwrap = makeSpan(["msub"], [submid]); } if (isCharacterBox(group.value.base)) { @@ -183,9 +197,11 @@ var groupTypes = { } var supsub; - var fixIE = makeSpan(["fix-ie"], [new domTree.textNode("\u00a0")]); if (!group.value.sup) { + var fontSizer = makeFontSizer(options, submid.maxFontSize); + var subwrap = makeSpan(["msub"], [fontSizer, submid]); + v = Math.max(v, fontMetrics.metrics.sub1, sub.height - 0.8 * fontMetrics.metrics.xHeight); @@ -194,8 +210,13 @@ var groupTypes = { subwrap.depth = subwrap.depth + v; subwrap.height = 0; + var fixIE = makeSpan(["fix-ie"], [fontSizer, new domTree.textNode("\u00a0")]); + supsub = makeSpan(["msupsub"], [subwrap, fixIE]); } else if (!group.value.sub) { + var fontSizer = makeFontSizer(options, supmid.maxFontSize); + var supwrap = makeSpan(["msup"], [fontSizer, supmid]); + u = Math.max(u, p, sup.depth + 0.25 * fontMetrics.metrics.xHeight); @@ -204,8 +225,15 @@ var groupTypes = { supwrap.height = supwrap.height + u; supwrap.depth = 0; + var fixIE = makeSpan(["fix-ie"], [fontSizer, new domTree.textNode("\u00a0")]); + supsub = makeSpan(["msupsub"], [supwrap, fixIE]); } else { + var fontSizer = makeFontSizer(options, + Math.max(submid.maxFontSize, supmid.maxFontSize)); + var subwrap = makeSpan(["msub"], [fontSizer, submid]); + var supwrap = makeSpan(["msup"], [fontSizer, supmid]); + u = Math.max(u, p, sup.depth + 0.25 * fontMetrics.metrics.xHeight); v = Math.max(v, fontMetrics.metrics.sub2); @@ -230,6 +258,8 @@ var groupTypes = { subwrap.height = 0; subwrap.depth = subwrap.depth + v; + var fixIE = makeSpan(["fix-ie"], [fontSizer, new domTree.textNode("\u00a0")]); + supsub = makeSpan(["msupsub"], [supwrap, subwrap, fixIE]); } @@ -263,15 +293,18 @@ var groupTypes = { var nstyle = fstyle.fracNum(); var dstyle = fstyle.fracDen(); - var numer = buildGroup(group.value.numer, options.withStyle(nstyle).deepen()); + var numer = buildGroup(group.value.numer, options.withStyle(nstyle)); var numernumer = makeSpan([fstyle.reset(), nstyle.cls()], [numer]); - var numerrow = makeSpan(["mfracnum"], [numernumer]); - var mid = makeSpan(["mfracmid"], [makeSpan()]); - - var denom = buildGroup(group.value.denom, options.withStyle(dstyle).deepen()); + var denom = buildGroup(group.value.denom, options.withStyle(dstyle)); var denomdenom = makeSpan([fstyle.reset(), dstyle.cls()], [denom]) - var denomrow = makeSpan(["mfracden"], [denomdenom]); + + var fontSizer = makeFontSizer(options, + Math.max(numer.maxFontSize, denom.maxFontSize)); + + var numerrow = makeSpan(["mfracnum"], [fontSizer, numernumer]); + var mid = makeSpan(["mfracmid"], [fontSizer, makeSpan(["line"])]); + var denomrow = makeSpan(["mfracden"], [fontSizer, denomdenom]); var theta = fontMetrics.metrics.defaultRuleThickness; @@ -306,7 +339,8 @@ var groupTypes = { denomrow.height = 0; denomrow.depth = denomrow.depth + v; - var fixIE = makeSpan(["fix-ie"], [new domTree.textNode("\u00a0")]); + var fixIE = makeSpan(["fix-ie"], [ + fontSizer, new domTree.textNode("\u00a0")]); var frac = makeSpan([], [numerrow, mid, denomrow, fixIE]); @@ -366,14 +400,14 @@ var groupTypes = { llap: function(group, options, prev) { var inner = makeSpan( - ["inner"], [buildGroup(group.value, options.deepen())]); + ["inner"], [buildGroup(group.value, options.reset())]); var fix = makeSpan(["fix"], []); return makeSpan(["llap", options.style.cls()], [inner, fix]); }, rlap: function(group, options, prev) { var inner = makeSpan( - ["inner"], [buildGroup(group.value, options.deepen())]); + ["inner"], [buildGroup(group.value, options.reset())]); var fix = makeSpan(["fix"], []); return makeSpan(["rlap", options.style.cls()], [inner, fix]); }, @@ -422,14 +456,18 @@ var groupTypes = { overline: function(group, options, prev) { var innerGroup = buildGroup(group.value.result, - options.withStyle(options.style.cramp()).deepen()); + options.withStyle(options.style.cramp())); + + var fontSizer = makeFontSizer(options, innerGroup.maxFontSize); // The theta variable in the TeXbook var lineWidth = fontMetrics.metrics.defaultRuleThickness; - var line = makeSpan(["overline-line"], [makeSpan([])]); - var inner = makeSpan(["overline-inner"], [innerGroup]); - var fixIE = makeSpan(["fix-ie"], []); + var line = makeSpan( + ["overline-line"], [fontSizer, makeSpan(["line"])]); + var inner = makeSpan(["overline-inner"], [fontSizer, innerGroup]); + var fixIE = makeSpan( + ["fix-ie"], [fontSizer, new domTree.textNode("\u00a0")]); line.style.top = (-inner.height - 3 * lineWidth) + "em"; // The line is supposed to have 1 extra line width above it in height @@ -445,10 +483,27 @@ var groupTypes = { var inner = buildGroup(group.value.value, options.withSize(group.value.size), prev); - return makeSpan( - ["sizing", "reset-" + options.size, group.value.size, - getTypeOfGroup(group.value.value)], - [inner]); + var span = makeSpan([getTypeOfGroup(group.value.value)], + [makeSpan(["sizing", "reset-" + options.size, group.value.size], + [inner])]); + + var sizeToFontSize = { + "size1": 0.5, + "size2": 0.7, + "size3": 0.8, + "size4": 0.9, + "size5": 1.0, + "size6": 1.2, + "size7": 1.44, + "size8": 1.73, + "size9": 2.07, + "size10": 2.49 + }; + + var fontSize = sizeToFontSize[group.value.size]; + span.maxFontSize = fontSize * options.style.sizeMultiplier; + + return span; }, delimsizing: function(group, options, prev) { @@ -518,9 +573,21 @@ var groupTypes = { var inner = mathrmSize( original, group.value.size, group.mode); - return makeSpan( - ["delimsizing", size, groupToType[group.value.type]], - [inner], options.getColor()); + var node = makeSpan( + [options.style.reset(), Style.TEXT.cls(), + groupToType[group.value.type]], + [makeSpan( + ["delimsizing", size, groupToType[group.value.type]], + [inner], options.getColor())]); + + var multiplier = Style.TEXT.sizeMultiplier / + options.style.sizeMultiplier; + + node.height *= multiplier; + node.depth *= multiplier; + node.maxFontSize = 1.0; + + return node; } else if (utils.contains(stackDelimiters, original)) { // These delimiters can be created by stacking other delimiters on // top of each other to create the correct size @@ -602,9 +669,20 @@ var groupTypes = { var fixIE = makeSpan(["fix-ie"], [new domTree.textNode("\u00a0")]); inners.push(fixIE); - return makeSpan( - ["delimsizing", "mult", groupToType[group.value.type]], - inners, options.getColor()); + var node = makeSpan( + [options.style.reset(), Style.TEXT.cls(), + groupToType[group.value.type]], + [makeSpan(["delimsizing", "mult"], + inners, options.getColor())]); + + var multiplier = Style.TEXT.sizeMultiplier / + options.style.sizeMultiplier; + + node.height *= multiplier; + node.depth *= multiplier; + node.maxFontSize = 1.0; + + return node; } else { throw new ParseError("Illegal delimiter: '" + original + "'"); } @@ -644,11 +722,6 @@ var buildGroup = function(group, options, prev) { var multiplier = sizingMultiplier[options.size] / sizingMultiplier[options.parentSize]; - if (options.deep) { - throw new ParseError( - "Can't use sizing outside of the root node"); - } - groupNode.height *= multiplier; groupNode.depth *= multiplier; } diff --git a/domTree.js b/domTree.js index b8e183cd0..d87607cff 100644 --- a/domTree.js +++ b/domTree.js @@ -3,11 +3,12 @@ // function. They are useful for both storing extra properties on the nodes, as // well as providing a way to easily work with the DOM. -function span(classes, children, height, depth, style) { +function span(classes, children, height, depth, maxFontSize, style) { this.classes = classes || []; this.children = children || []; this.height = height || 0; this.depth = depth || 0; + this.maxFontSize = maxFontSize || 0; this.style = style || {}; } diff --git a/static/katex.less b/static/katex.less index c60d249b5..822b9c3ca 100644 --- a/static/katex.less +++ b/static/katex.less @@ -34,6 +34,11 @@ big parens font-family: KaTeX_AMS; } + .fix-ie { + display: inline-table; + table-layout: fixed; + } + @thinspace: 0.16667em; @mediumspace: 0.22222em; @thickspace: 0.27778em; @@ -188,10 +193,6 @@ big parens .baseline-align-hack-inner; } } - - .fix-ie { - display: inline-block; - } } .mfrac { @@ -210,11 +211,7 @@ big parens } } - .fix-ie { - display: inline-block; - } - - .mfracmid > span { + .mfracmid > .line { width: 100%; &:before { @@ -323,11 +320,7 @@ big parens } } - > .fix-ie { - display: inline-block; - } - - > .overline-line > span { + > .overline-line > .line { width: 100%; &:before { @@ -347,7 +340,7 @@ big parens } } - .sizing { + .sizing, .fontsize-ensurer { display: inline-block; @size1: 0.5; diff --git a/test/huxley/DeepFontSizing.hux/firefox-1.png b/test/huxley/DeepFontSizing.hux/firefox-1.png new file mode 100644 index 0000000000000000000000000000000000000000..99b18ddad285952df14a5d74fd85b2593d674c2a GIT binary patch literal 26101 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 WLKhaj*@_QgsP53*p0d^C%>Mw`T-JyH literal 0 HcmV?d00001 diff --git a/test/huxley/DeepFontSizing.hux/record.json b/test/huxley/DeepFontSizing.hux/record.json new file mode 100644 index 000000000..3cae6ac65 --- /dev/null +++ b/test/huxley/DeepFontSizing.hux/record.json @@ -0,0 +1,5 @@ +[ + { + "action": "screenshot" + } +] diff --git a/test/huxley/DelimiterSizing.hux/firefox-1.png b/test/huxley/DelimiterSizing.hux/firefox-1.png index 4ad62c262dd20baf49c14a6482107e778abb6a4a..cf432632b985f3875e0f7f9c807479ab5c40430f 100644 GIT binary patch literal 16120 zcmeHuc{tbk`|hVw8BNm=ElQba?2Mu$MP(}^`yK|_vlS&pnnvZ5XhRFhl6}d(WE&+( z5m_pVl5CX}3E|w&r)H*^^SjQu&i8lzIM=!6d(D^lyx*_&dG6!vg@ErU_s6vX=O-@kYo>mMzv zr?bAN+tczGj2(6CtnUSvIa%M`Hwf@oKgvsca(&+%`bFDa{9N+xj+oCt$%u^0W0{p% zzT+PpZyx7lE?Vmv@i@;VCCaIz{BV|wnbncm^9;LdBWL0@{=xlhf|*;6edqY;+l5sf2dOP{b6{XzVT#o*yCD-Nmy%DEb1MAq;t>3@A z_rN~NH-5R_$4&Ep{P}zOpdgg`I?AniF2kSR*NHt(O1Rt*HTB7!HTDvW{R@^@GYl3pHBF6;iAEU~W8I2VN!K1| zDVk@LO%@efWLTSoUBzOOoLka4<^*iMbLUP&n1mT?yMcGv-7~d?ilkdWPCWc#@QcYF|_`bilw(oInN}lTzQP!Kvs{V6A!^6eI#54{~ z^jq>sS&Jj_cIiaMw}Z^O_jCue7#mxJD(J@CV#W1bmytGY@--M4!Ttb4_ zqHmMk+Dkc7Qd1ir%fTXYUDIxx8nonp^2;{EwO!<8qx_L?1gQ zM8>Nv+poOu>HY+TWg)?9ZGvKO6vlMAQ5$__oEn8)9_MVen)=kODC=;af5W@m0!34k z<6c#K`x13xRX>khDbS&|>q(J8npu8x_1jxZ+gf+=#`TyL>r) zer1+8Uo9PH$i^{ssp7Z4-U?Zs5xIV!=&M$@vZg2d+S9h4{n7F6d1+o*r*o&yFRiK{ zX+MbwieIkg=*@>w58`NBO|(+!lRZ-57_msfhvE{qJ_- zOiYC?N~;b=?7k!NZuH=t+S=y%S_;ugdI^2yhi7n%x0Fp@o%&Qa)rdX(b~D?$l4I_o zpOjkj-CF2w;mR7ly}h(Iu0S=VrNNy&>DS*hC{7N}8$GzucIVC>@{HAA}kj2|RuwM4AjlVe}E><8(9%|A>`j+C{)wRt|^bR5Qp zdVSvhKAQ|tkSoMrZu(*W1>(k6t|cdn4);D#>u*ledl0Yb6_evozxmL|8_Qw$Ubhz8 z_v~DKt4BR|*CXAtLR!r?<|(EI%vtCJ58V8G|7cfu?!EyFm2uz~Yh2zC{~I3x*DPQi zA9|qG^?p?5(BwfN(0r?k-@ZxKf=OyM#ciEGmsdvp$gH_sTv|UZ(oaoEFWQE6DaA-n zw*RxnnKoT=!Dj+(O*Zdl57;a!EUYaaRVRe!`8gL)n{vT3EKGvYh&+!z zwyXhwoqYVjn?kiT(_Gz~=S1|*MMY&G4vLrC_)6@Vc+Tu$SHbubcyH4lYJ@i@v2sum)0}^Fp_^iGP~d1G{+&@ zAjL3AEo2$fxN!GX$K__zv7Dp6 z6Tq7J?%lf=!#*ri5Dht{KlvfQ%n{d)K|*7?UcPj?6|{JpmR8H@x84dqA0F9zJ@IOB z1pWaZ!z&C^jiV{ZAwKi2+Z|WCVPwa&KtXPfByfhzgBzn*D}2eh!)OtrJ1@P(cWkJ>r#`l+aF6}8 zz>cnP%VzQniPfw17B61R^1KUb?zv^3x}@&hyVrDi!vXGliv*(T5(umkqWp^df>+nd zZOJJ4aM8kd*x)4JdPB3kT{`DoT17=gb#-)3yA}_smW;l z_Vhfje#6&~veoL-%O-s^FRW5oXzqDBn5QPI@%lcu;hy>}aJvVwAsdt5z1yv_tF1ss z$=3+B`TV){-!7+{^UUUL+n8g+{RyW9)RJwgg5@oEWgM>5$Ewu~j5xn(E2JQrTK!GU&3nAF(gkLUPT!`7y-*i8Eix+IC|K8g6#&=ycGaK!r zwbf_NoXLdWQdB57j5Dz)@ks)&kT(gE26xakGz{|}d-Y!&U|TsmP&6p(|v;X}|dESZfk#Lt*4(BIDxqT^2CWi`G#e@25 zE@qs#oztzvUqq#(jJ~*FkN4PzRyTyuWYv?rBDi{s3?rI-@C9dZQbon)*H25#tjvo% zb@E-G{B~C0f5To=$Al5C>tTyYu~tDkE-q;mk8>Oa^5?Kkr}OhHp1V{|8{t&jI9B!K zxwB_ut!^9@5fIqInz4hEA(+(Apv$vxp_r+YQ*u^zwpTHqg10v3_{c!Z38~V=g_Z|( z03n4(=Prpib1hU65fLFX4dw}9@Nb=YWK-pxnwqn?!@=fkd#w_LNYL_n=7|#qU_EPG z9`^t%4KplCcAA9YE&r$*0fzeKzi!uaMbP5as-X8xXSFsa;noPZ9)lN>QPN54C2ThU zy(VA&v{aRG>Nh5nsShIRaN)v*JGXD&4}6zmIk62P$H>t!$+fU+0blK%P_d@yEwi5- znwpUJ>^Vi##@ezmwhAx$Ruq@|p!$BEiy2W5qAg%{X~uxUcQ2|5!g8EjB*{|MZm=`X z{EQ*76CMd!S%XK99?4%wFMhWz&9ck_fxG!x@%WqTefOh}5a`n@ilI2m3%~r7XuN;_ z{&zkl@{ele`^8H}o*pQAo!9Cq2atR~3;-07^>_dtKMm6R>#x%*5v!A>5c=a_P1W7+ zd)-SXKA4&Bd*U@VIX*ypUn+ugTcM(&@|77SZp;+dpkV9OVxDkg6v2<;9c%S>uzGbw zGz5->G2xXfRrYk(Hc9yn&f%-A2$(b6Z01I!LXHauD!5HUgYL>9DJcnj!O*uUMr97A z8iU_1UZspIiEi632#XE;Yj4SQu4NN@BlpyTPOg7mpBgjy)?Yi@UBrqb&XLV^i9Im-KXh!SBDF#Z%M$UPK3%vYkT8 zv&P0ohpJ#c8mG^ijUo9DeBuhQHF3IsQ)KqRfqrFgo;a>RHs<#Q=T2!fLV6YOO zU6E8}bXfmoi02%Fq?uKDE?;J6EEEHt?%!V+V{2z83U3L#wJ6qmX%%IxtYI_1AWY!x zzyChz-let9!+lN6u!|RyU%lG3a)nLMbC0EJcu&bZsP8aNi(^>N%PV(9>Br}DrUmZ& z@aoYQ1WHlfiDPCk+;bGa6KrBsgHJzngk`0mX5z!uc9z?e~bKZqaKe365>Q~ z0Ot8sw#;|$-+Li-n^u0B{WAc+m<6i?pP?~|7V+8tC%j97kywNLFhd0KQX1Y z@~;dpw$tH1gElcfBzrNk_&_phS-xS7S;nTa4kZt#zF9+CFFAXL(p$TQ>ezHLd zx5V1DMyu`aYJ)ii|5nvmj|4e|hL|z?yT)|$>)d(BPt3ia1>C8tYq@<|zze*BgRwx$ zB9$U+|HI5!`Ms}%^MCs4USn;3`R~&*bqnH6J1h=bZ}5`*;t2L zi@<;>EtH=adN8~v!sFIrALL_05T2Z1OOLZ`PgLw`H3TI?#PS3S>;t>u_J5&=gpE>A zQ_!u@vu6d?N`JlnC`TkfkF)JVV$2Us3}1vjNf!02;1dh8P1-l`w68w)7{sS|wdKD0 zNF$gJ3p`>Of(Zmgg@uLNG&Msn8HZi{6Q)9fPeVKz?r+gTDyk3Q^eUD?UW&vdtbL%R zt#Hq9+n&1K8mTfYOW)i)ZS;M&7y{(k*1rwn7r#Kl)B*JQ-S~u4eN4c1ZrnV{0B^1j zG+%NnP3o!%pQH3nL|k0o*7j-)jDJ(4yw{n34)QM)yy^ zz{pof63fcct$&>Fma#ojzB-Ly-(%??L5Gc-g3bVCY=xmv8vgibkiAMDPDdPY@8oFr z93d^FVX|O@Dl%?Qcc{f4nwlgz66lTqTHs+rX*DN8K}&s4ds!Lmz!>*xu-pasv1H9I z?HmXZ!mxfj5LT+5daSF>IRmj7PRynj4WIoSyAzF?g$>5)+udna$tRjH;>p5}ApWJm&xrhff zRJ2G!0DZt-{a55VA99B}w z1Unu+VfkruwcY(Io0#^s5$kBW=Qt~$)R>sf$ZT|paqWEZezY-Oa|vH9%rM8cW&v5( zF`Drqexa|Y7t2~Xl;_l)jaN3!(2SHfIQAZzhQo{7r)k9Rs@NHQB2^yT>})J6hJ28M zRL}_@%SWtz>b+&o0&&*LYVceVXmV0qoN_(!N90;7uP0pg+16rlAniMQEYmdKH4;Pm zJE$_Wwa9Hqg1ac|9KW-B&^yO_(AwOyUWJ)^Xv%N+%@ebzLz9K{G`j#J@fglL0qIC3 z9KT}9t1l@bxuC$9>@JlA)4sOC?5F#?`Dk-i7<}HnC`C(zT;|?-m4!(#;EJj6u&{V6 zM03m0Z*@`;Q+pwiH4gPYfWCp3PPGLwu3QE;`U1D&HC&TIAyu)x4-%XQpI16PEiQ~{ zYHoIVc+HAe&izX1)Z_uo#lL?)4)QK?_2FuvC}C41HJ<%x`5c3!-O{dALzbl#?&%hN z41j}Pw2CmASHb%lWImd72Tl47LUU8TniA?e+RG;$d3D^?}k9s2!&D8z+YJh_qAP0!HTl z;#vLHu*k?XNLvAshbBiiPn`Mcr|H4@&_0bpLF*A)6-YL&(6TWJEAr}(Z--<7>U_%L zz-w8RR>%^xas|*rjyZE!YK>QKgUXX4ulao;|Hv2FmTEy<(M#o9zc&#$=jiBIahfIj zK|C-ebyJvIH-{ty@}1A4!g}M(ukUqgNsrt(`eMF{zLAl0eT)j-dPquQ;{BU}^JVwE z{F&HiJ*B;nKZz~Da~IOV98+Uxhd^m6YtQ&$%TZy|pB9~KA6VG;;f`2_L(l!_$C)3_W*=#eJm*UiD z-IoLV-U<)vgGOAGag1?5DJXi4Yg^(@LkRDXjcE8VTNA=$KR6kM#N#x&K1dRZKHOs8 zvkPCK^o&H?XF-dkH?M7TKZ2+Hjj_#;ueKQ)L`ftGJ;xp->IgtC^!*cCGNA<$&M^%Q z46ee0R>q3x#XEpH$u9+dt*%qh!-(b25KT8ALVfZpvj%dkT+*61jH-^wAZWt|8jFQ| zl2TGykPUTm<}O*&1N}&M)uU@xNAg@+<8L@Z5BYN!glUC2IWmy0g$6_38%1a0d{Dl5N^Kr0`0DdB6|B!f(Bs+juv{WrWl)Cem*1YFPq46#&>THU; zdQ}8uBNOuGnZquv%&IJL0yj!V*`B{2<#q-aPEJn`Yelir8)${kC>K=c2j9_!NWqf^ zj|&J0*u5S(S_sQrv8vx}oN%yAVKK4!+b{o98`AML(9wx@K>i}ni}hO9gh?d3iPxNI zA23S&N%jDnL$Fp9CQ39G0+3v6|eFw1MK2LX;jdYqg=fievr%Jbe@ zq>|(KKy{ed>gPQ}R!3c;?QWh+B`^jnXPxM;TQxNFwr>xn>n*(Sk1a!a=lNsHX0+uX z=|9go5xO5`j5*klgh`gNtL@*}vD(Ne_FydZli=l|nHNk~AT*yP<^KmL75JIaw$H)}|h#9h3| zTNv=SLu4%M`JARCI>0{kkPNiNfV>R?E^!4c4T1|2Em>S!#b@zB4KaPk3YZ~8!FniX zX&`qsbN_xs1P&DH~rR~l?KRaI6t(OWs+=|E&So^p8_CMiCC$xUAehx%l9v&W% z`bT+GN9}MxP?hW)83*CwmO%Lqe0JN;&-?ULAU*K;( z6qb}UgjnV`-r6pz^VvHZ2B|a!oS~TQv3Qz)O&qjWUeGKBMSWIf_ z&q^_GM-MU$w6(85K~nzOpb+>d`bSSXH71@;PD$Zu&a%~*7D(_)5reqq@y{DdqJ=B} zv2e17+4Gi>7Q_|K$tXBSM+4&d$KX^4nIRZ9sllhxXP2E8H>)BC0Epit)|9pQ| zIfr%{1D5Ix!)85CmGRH`R55kUvsX9LtJ%b-pSu!Vejk5z21+?4wc!}T~0$xHMH~{4y~w_ z>-=__+!_*zN%DXW#0fp8`Q^P!Uf_HpoJ-~0m52c*m}J|rpyD~_bCO^eNbaCs1QA6= zOQZu07wj)5*;INgB@GtxXa=h!Uv&(+hK0pt3B2hB| zPFBfWpx~9qbazv{|0uoe*)?D}6`>JRe?GBL zs+sNtek+V>vzJqQX$h$Ss2rPz+4idMYA-d%K=+wEV%#oZT)c{Y#TVDQNiwQJkme)D z;g9or zY(u?HajF-ZRC2M)2L!yF9>7OdJc0bTu>xeb=J<3j4@zihJ#T+z) z#X%7wHS^ncpMZ2)0rSs2IJ*1Zh1F_c$kW}epX~3BWDYlINF^bz3|C`4=R!kC9OT=M z5Q>z7g_7!vp9wiPr(Ot?G*51Iy{^f*a^=b*)OJ`DmeQ7wZ=XR#v;qTvfOBd@MP!=X zI(WbpxS+^m6wPyXR&zBijPm_(fwDi6IgXvhM95d}ETX)+15+f%#l<qyIgstYztnI_+MbT7~(SL5QS()&>)$h|R0 znyQ?`&}362yCe1l8>X3Fg@b=nULB5n1T}0GvuwMQ#Qh`1Vc%4q$G58p?Uk!;^&rdA zN8keUr#`8Ugm>(UCu~hF%6Y`>9eA3CU5goln?Cg&F^@zy#dK{&?-C2-NsdUinG3$1 zC5ysmq&iTz5mnVI$CmpUuiy8k@mT~4*5t88dtXyK4g%0`Hr98}i97~(#GA1WRI$LN z2r-6Fpk{;iDel+Qd-bCFY!jq#KDVZ(CQ!geJ*^E_VO=|pokg3)U}qIthpeaufHD1} zZm?G=LpXt&5J#;PoHneY=h1H$$Dm`R_kEqBQ7U|f zrEZbDjJjsZmsS!#Nr9!S=>P#Uwn6o%J*HPJJMc53Pl}KnNF-E&9E3Xs6wK#UW|h97 zVSIPgAqy(o(sFDn1(xcy?AUYi$L$e`?WRXL7V@v%taScw|Tie~wo<@B&IdDzdLDd6LG1&tjc2T$yVnV)Q#jf|= zbw*SK!2i~QBMXL|J{^sKuR=-V^U4zxUV0KdWreR!Q!h;ROHgsv;4IJ;(a?@*uCaY(!UNHq;{ z60}#rRUsWt|2KoyDR%Vjp_xJkO@%6`CtqB*Cm!?oE5Ae&0MtZeBUe#Pc7$3}G*CL8 zV^j5A0Nv^9*8CRaAD-i{^C6`21>$FC#2@O4ipx$gFjmcfdhrh;B=}I1C)FB}*9)%z*R`*^oSd4fuYlZ3uO;0)7vWe1 zp|~FvX&wALQ&9d(CPNpvV)bU->%H-pa%fqv9_ewql}+SPUHJ9G%q^J|mZ?Y%>TQL3 zDiJXB*u)~C`Q3bJmCh>C-Vl3uT%dJ~Az3E778Df_EU~+H(Gj*ym11rk@MeheJBUf0 z-{@O(bl!4FXn{b*)oI3=n>QTzz};5uv2-PoPUwA=sE?5cafNceZP(S+mD%@Z2hj#j zs>C4Jtw4d7r@naq9x6qnVT-%1CeLN182Kb*L~WFA@Up-1PPR{qw-#*}f0gY68Py;h zwOuu+Te|QQwtZ-ytEMU_oPs48fXuPF(v($|xNEXxJf17lwX!f6GJ_E?qtyLXXjm9= zjby1^t09nQbeb#jOJ<8Xsh#PVwCx>k60p2cAKEK4k|~cf?Tm$v8b`H;N?YUI>aY_G?0=>TexSKyQv<-L;Wl+bb9hrT>rbm44gtMc%a!|}Y%Z*N9h5jCocn8Lti zeTE#my1Q%UqP$LZWNHaw7Qk*<7Ki@0<zy7sB3M(9%o} z|KZJ(l;dO%)PE`K-k~JB>!G$Q>E>`f!e~4Ic0E!y zRYDC@)Lu*QSF!P9$BbOJb_;}iVyc`m z+i8%K#jEY8FS-x)AdoL&S0sdJMQxOCCYhI7x!~~}@4Xd#o(BqfBEh=NqJ)gV8|+FI zy=YZO)E~OuKCzt>;(Al&2lNoJy6vdwgx)41sjNaPLvVor6BwaP*V);lmm&acP$wa|KF(8$qFZ)Yk>a!gX%vxu^s|5Q>f=008=2?fC>Gw&W>#kV3_CqRgFEwfb@kVeALC@S zEMB$qIF$;Hqe(FZb&bruZ`zVDXAd>XUZ~#KS}_4#)u!eNW=dyp|&b^f3d|j`p`3gC}vjB_=*5(8B{hWlugAvID9we6DBpEXk2?>oSJLf4LDIE!)J`SB_roJz04seWI9q_R zwR5m)Ie^fL`gPIrY(s#l{+%l0%q=&+_e-e%j2cd6eY=RCUa7u;S8VBzG?0;e>HFs2 zZ(Mtb`~~eVvXlrRCGer74!ay?O~m*=`Fj%9i~pYwFxf47GHi@J5zSumsOB3R>t?MtJe1!(s-$wmIXA|AD#q`tQU4p2okn@vo=+ t3kClI?(Zpq&m7*2eeCO7mlycJ=ltT&8>@{k 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 QPBJUi?JT8u#a~bV4}pFX0ssI2 diff --git a/test/huxley/Huxleyfile.json b/test/huxley/Huxleyfile.json index d265f333e..c023443ab 100644 --- a/test/huxley/Huxleyfile.json +++ b/test/huxley/Huxleyfile.json @@ -105,5 +105,17 @@ "name": "Overline", "screenSize": [1024, 768], "url": "http://localhost:7936/test/huxley/test.html?m=\\overline{x}\\overline{x}\\overline{x^{x^{x^x}}} \\blue\\overline{y}" + }, + + { + "name": "DeepFontSizing", + "screenSize": [1024, 768], + "url": "http://localhost:7936/test/huxley/test.html?m=a^{\\big| x^{\\big(}}_{\\Big\\uparrow} + i^{i^{\\Huge x}_y}_{\\Huge z} + \\dfrac{\\Huge x}{y}" + }, + + { + "name": "VerticalSpacing", + "screenSize": [1024, 768], + "url": "http://localhost:7936/test/huxley/test.html?pre=potato
&post=
moo&m=x^{\\Huge y}z" } ] diff --git a/test/huxley/Overline.hux/firefox-1.png b/test/huxley/Overline.hux/firefox-1.png index d16429077b7cfbcfe61476b38dab2f05717e5741..0ae10a096cc6aa73e0fee7f3f31c6838d3eb0fe3 100644 GIT binary patch literal 14974 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 A8UO$Q literal 14934 zcmeHuc{tR2|2K8iNvAr66vZj0?4qd1(n`oaV;`iDU6_O{N88Dgim{a~+xU*9CPQ}W zNS4Sl#!h7?vhV!fpXvPmd4A9RT+e-9_j6tMbv^xYW{%6(XL+x$*X#Z5fwrc~Hg+C% z78aImsu$1evatLF|GSap=S}ccP{6f~g+;Pb_52y!P1dpUEjLNCe@smFEGrH6{q@uD zTa1jZZh8LJ`ut9njhn7&Yd=ak{Wze)_|wZbfC7v9+P(1c6qBsz^}Wg&*tZ9ed;^+Ye zWSbQX#(BGswMu20=IaJ=AJOkA@tJ+c>pax6zS={q-0yMiTW|T);;ood9$9naU6k_M zo42CnBsS-Upj>=e+v25FSQhR#f1KMikT_}I{Uw@t7FY9_Vh>P`>VM^=8( z!Fzgovfo_zbf4?d)29@F6Q}$OAD*7z{{FZVE4krwMG$d)b$)bdG}{25rWM~3r{K-$ zGEqD)VzD$c9CO?;CPv0SRah_eJyi@vLRo+BZhs!Dt5?aF-`-sXVGr|8>t z7v*n&KS@&bSz`KB;sh8*NJ>hFZj|Q~yTNN_=m6UG^{&0F3->b!h5D>rg&yBe@*tSy zmNT5Rz0f0jMXW|Q+UrUnNESb93Zk6a(K2&XQnsE9_DuFYnPNJ#8v-ax{Mb-UZl zkWTSjyS?!%>yYjHP9`iY+?*X{Xnm;+H83@Owh|#`^gLZJ&5n^pP`h~XV{iHG*}|Sx z&C8cBvs+gLa>Xck=Vlep8EeEV5?;Q1Iknsurp5W_$&=?6H@>!~X>3-{LJn}bRD6TDBDV}XHF)q24fAr|l9G6dLHDaVyAvSUA zYpb(#19M?W+f~_r<1<+|m;*-%-nZ!YTY8My&zS})qpCr>`C5i?YCq_lZ6|E+}au0nfo_LNsKs)GJCRpMo===tS|Qgep6 zUoj@JyMhqeaxmh z*Ku~ZNu_jsb%NMMWY~WG>j5&1ncpf=-0;QecYC^AYs8Inu04j^iqueYWbdQ}~`90(o{8MiJlM zzH~HMxSaWSN-;>ik;h8tB)hpQI_R%^<(*iS5|mblwTyEeqK`YYCg`PU4i}7O=|xHq zW}5Z1(g}q(urXvSN_Ghr!h2$*aH2#nXt(%GQ~VmPUVb|G?74HZK7IZDwiDgOQ?JC- zy9$WkD^5t~249xt`3c6iPj6={xXsB_pXE7QsGP@L)4kl^owyueshjd%OT%egJ9j4T zJ!XCFW5O8-6FN9m`tqBf9NVZD^inT1^i_r7W4T22uYv0epoGZyEV);_dsjUHIiz!1 zO)W5>4O&Qht|Mi*DQ(oCbcy8q%PamMX4tMob#9PITv@q=;$U%c(Q6>uCOjqvtG>65 zH+BE18$vQNc;C{+56)LRav_-^%ZMG0c~uj$40Fa`4>-8KRVuCNKx*ns`mIgJ&xXaX zoJZN;^7{H0oUt)BGvm(YKHh0mUbHyy6fT2uAB@3LmX5ZKUmdfN^O_;^`7T^eNlg`r z>ToV4uvS!5OhE!Yb1M9Le9>pJf*V-?-`4iZ1|Mrx6Om4R7s6XJ0o4n4`Eufh&tJaa z@m^j91GUjfX>nd^TefUrLWH!V8zdfsQHH?2deF;e`PV1;F-;?*Xc6%ImCA?svPyox z49qysDKqA#Jm2aPqqGIeDk(lb`}&u6>9$R&R55kmwzf7*47$U)``hV`d0nZhVTZS% z3p}e8@7)!B^7``?vs;rF?%utdE(c{%&uYJ%`$r;!kmmpB(XaT~g)gBLxqnZ#vk1Cv zef<+u^3<;#d6YA^H!Tfo`C&nAudgSGKsG%U;gzuqj}SLWb?nHk8l4?!vx%qsvu?!2 z{u@$Wb8xrI7E`wmG9!%a_yYIggV_wq$igi}pS8t7OzhC13#5v_{u+AfT+;CJN@a7x znT^OE|N9a^A(@mNa#@{a*!NeHu&RgqPvHy=$t+ib3vPVHECA*(E5d8(V1IrcsD>h= z9}{mM6cAuSvxUp~#0St~M!tk9wW#p>Btt700+)#h3+n*%c=F^)bGEsX!b0zD_8mJ6 zi0tg_Gu_@3wry0a>Z&T8GiUyQg^1H1PT2RB{lTMn>ouSeiMx%Bx;`tDl}kfOp*dDH zyZ6iA)IN0RP~d|HI=Z?~01l-=;nn{1=@X_23&3&;sQ<{y%8CdHX{PO7jnEP} zIg&9-Ptk^;4^>(-ibRZ4VgQCtNz-kR67_}qA;iz#n6pnFtdA*I#$|nsCRmCX0F58 zzB*i3&b9APiNg{SnzpvKUPFoZarDL%b(tGuhW&$s6uC^3ycTHe^b#L$A9KZcE$7nJ z+|*0a&jnN-4q1Nw{5d=#BK1C>*G0TIp#XMA7uax;O<&HTc<~Bf_zRT}VWv5yMl$ z0YWa17izuRv#1d#ZxpI97Zn&7$oVTDpF~G4+3xVXpOxh=_>p>6rV5;o8x5{SJkBjhPmj1`lu6B|0m(A3Pv}u>U6sf6;$`L4VMK-&n(Cgad5c}P%D^ypDtD=RDGQs3ft z!F!XQJ=@1t8?R)Zn3xzNb>*I!_g5K(^_6MVWJBer{yePtjC|+LPi?uG@L=)eJKh*s zx6~EQIQjI3B$ZKAp$TK1`Fg-FK2CnA?6)zB*tCN$1CY6}tgO-F$B#usMVk;cv98_I z-`6K(v9_|vzHJ*FFw{)DefIF;V0>h}m62E9V-@M^pU)rq{rC5|j_}}6$cgTcwb94= zJ*N6pL--Vo<9+6$M=SxXjx;3Qf5@*Sp;SXfylNZo@k>=zRgi!&g=GjtL-U&fg zvI74wxOR3X-8B{BEaU<&aSUIAu6^5Wz}zRLw)PS}_r_P_uRW#a z4<0=M$7MbiP!TDkiunNbsIINW zS=lqP=xeLXq^KxzyNH+=&eJphc~TOd4rm2u1US$g2!Lax+8(ZGCjA>`~_{oFh9VS=PR>( z+PIE-14%;^8eqYZ(&XgdQ_|8zj~~~kLsv;b6u_g$$ADBk)2PnAN6EKH`Qg6wYJewc zfF6XSpqz>TZilj>xaZ#a=Y9^U5v7cog#0%BINv4PudOf7`2u}x0F2DZ%S(yLaqIxYbrsMKUy4eoR$QIY(|CGZgDwm8&+f}` zT6_zjfj&mEDo3W#D`jA@m}*C^BR;kz)5QMGoh{f{la>;KzPQ*|Huc!?e|`%n6AYwR zK4Pn52g0N}y#Lea$PIJD#sgjOb1qo@y3y?9YuBiE@5 z1JM7zeoxYTkDoaJTP)<`M{WGz1HrgQz%H%ev@I3C!)Ay3`}Ps6n~KGK-4j*}lwr z$yomNGoI$$qlm8rtN?z>xz=zHZyl_2@#3EW zARRRSxl;gW2@m7k@L3J{A<{Rle^Fk%d+(kd3a=obbV5&kHi320Yww@0Y#Lp-7vi;GIQ3~C1NZ>Ki^9Ufa&7~`zN@3=qre^wKo6u+sm+BR&TK1Fk)_Q*ZTbuV zPOY!huj2rFA9rj|Mto4zAS+x-Src#UB)V)7y+Mw~t|JMJvYiB19e-U;DQHEPHvX%i z{{~`a{enHR^Z;o&c(A4D8gR9K8e74l1ivP z#FQP?sY{OS7r+9;r#n=KBaq1j?B6@W;e+fk8n{Wq)jx@tV1I z_s$*i;eT-iydgH5Q&jttNqvVCBoaLf^03CPgbW`t8| zxo$GjDR-Xua{eOpwyyU~fxB)%e?Njmr*4dCySwKg0lA4-{#YoA$i_Ue(~j#oyj+T`Gah=ez_$YQJm#%(9$#11e|L5xg>v-DD&S3y(~8&|c0 zQI>^MDT+t86N=rbQ27CI&w+T z(diZi9upEPZc9@~QrJ`1WFp$7C!uoe6E=|iaHVs~i>X+<98cn}f`|ZQCd}59X>x*K zo9o<@1)`L2lv7v1u-Yq7F98v%mAj9&XeKG=j9OGgiNFCs#)6E}7h(_`90zv9xrZKHCSvAZ(okSuDgP2wB z{Ur>~@c6JMxqC3foJ=HVV#4MCKFfiDhHv*JO-1IdX z3pIg2!3p%jcXeqv+9vKXV-$}E46m!B^EhC*F(qik5*|`hR}V9X!U8KN$F$~V-rdTL zRBkz!UVlqVOQujWU3&~P4h$4$4a99FK@HU*ICK{ofjBW0^zdN|oEgW_kxPRy1gZj? zx9`&i>VZTV)CK`n;2qm@R4-h(z@DleDS-vSL!vOB@P$H!tl{GMOm;#~Qv9IWA4Nu{jg2`V#twgtM-V>>h9VGys>I2)R5Z4&yM-)3IKrwjj9xL%`O1A*m+h7H z2Oc)J(abz3Zt1x&FritLZ(#d{U(r-1TE;$Nx43b#MT7(avp{1=3#Z~){d`jix;}`j zyTuF>{6VSM8hO87pH{@DPJDSPn_1h`T>dsBIReZQF06-(1q~Tb>@8yj{ZXSl$DvJ^ zC`BB>#lrZ-7h+Hw@>b$qt|J;m(5vd}4e;R2kI?fuF9GAkb0cjXAV?o0@!V$Ug+rGA z_shC?8b)AN9axxxXFq!?K%f5(+8s&8XcD)bUom3@%yAZvI5XY0nf%yJ6ug&RvV?5_ zZ(I#-s2J-iG`PQmU!MrWjzkO%+eW1AnlI8wP%eNn<5?jjkG>nSL=#hx`Y3YXRBgO^ zgqRKy*k*D&__hU29sF~0r1xIAQ}gyo-*qGQffY6r8tqu#rF9=NuDr9gmDza>xRZ>b z!A408e7euCZv|>25Tpo<0}x~TN#aO2bj;+bDc40b{)35Cww)_Xa|yK|cxO~Ygh|`C zh~WjLrE#?D&2?B=Q7ogod z($^kU*VObgKql=1?eR@NY0redq+mUceEcD|{!navT~#hu^R|$#@8w1cO9A+ePlM^8 z*XIXNyTr6<98eP$Y2ZOnW4I+sO-$|zMRloE3~pgZko{Z;Cn4F+9?l zi8m&?Gl51pLLu`7We&l6bVpvO!cU-7S^+Ggcjmj%EGyU{(b$SWiu3|in(JGqTYVLz zC>05cASuz?ioNrIInX?(trwxx*n(mX+~8M<(o@beA_qIk*avTQykVank-8&dgv8Y| z-0Y!5i~rXbc|$7SldgI$vZPiRZ`H48 ztKt-GDPS6yHSxqsb?`_lkdCbR6LE}~Y&D#*)2QW>^$JQ$i2V0#c{x_9BMu|8OYmPa za5=mY4DKPs9`Y$*)xIztvmfuwKl%>(r~*tIVt{X9i0Z)*0hGur0QC5ld^a1^W5KHW zg#Wyic4x_(j}<4d@dn~PHT6hE^j$Y805u3Zyp2$e#F4oDE}0-`ez(STcsT`2fnH6q zsgDEg4$4m&Cz8uSwGjCY%2#@NI(V8SrR)oXY3H62yVe(p$DKOKFpyybcas6KL1AOR z2Ibn!chTxYjEp*ngG-7)m9ydH4iUi6pxNkx`285E{Qe+~pcx{}D?!%>=vm^kjDdpO z4g)f1(p=iQy3Yalks>2S6M%su@&OH03=OW9$>yacUUOsVAdDga%?ineMEMP%;gDb! z3PBGtJc!aub6+W-G}?g{fTs1QRaGBAJH?xsW%(|A^$;nAnyx%?CPXQ2+E{EQ5fpSZO*8UZQ^B&*jOi(>V0Dd^Vqx|8lc@OJ+fP&T>G&aBE|dWcK&! zDVWD%dLuV^W^9+wYnow7f9{5M!eB$x@<@##M(PafM`8;mrdlj#_Pwni5nzeznyRn2 zuizd8wSq$3pKk?>jvHsf?;x%t8Jo33=gU0_^e(__uf43VGf>BU<*bH_g}Dok_mpeR z%!fo>Jl6nCy01=>`B(vZtfbpqq(h%3FQG0Y>sQ|Ly!Ig5^sB-*M8_!f%9}ss=}!Ne zk@JaK+)X0onL#fPeK0pqZnE*guu6@@k!F$e$QBkq^#&5JTnTNLnI5u?SX(SwTee8Y z3V!N64yfip%Tv~h{PjuM(TxBgYE|_VW z1%4+un3LUjgUUKS!`~}0f^ULg{$SDxKL{;Iyj43{0lG6j^yyidg@=+x5$FiLerN|f zzR?!&!;+m}`U+^N#^FZE;WrYOA`d%VpnFtVB~x7yZ=YF=({=15p0VP}6`^q3*}{ac ztMef9CfXzu7Ky_91$Rf^=W)rIX&)#pYT`o6v`a=b(=rWqbnZ@t^PnAn+k+g4QcUTa zvH0>z(ed$ug!XH{TDw<<98k06#>igGmjqp;;5G+MIV^3@tG)Ij7Add$yucMsSG%Xa zPn!sITyzkwwHMC)L+90=JmBR*ApA1(m8Ch*ge6Nziovtmp^>QlS328owh?~lw1*FWZ}@i)EH2pyosG-DM_KVE_aha@}m^|D2zYa#E+)=|0^nRE|7_s67u*B%?VjlFKC|6I%^T|U*GfqN&o-= diff --git a/test/huxley/VerticalSpacing.hux/firefox-1.png b/test/huxley/VerticalSpacing.hux/firefox-1.png new file mode 100644 index 0000000000000000000000000000000000000000..302f89b80a0ef42700c715f81f340d6d44fec46e GIT binary patch literal 21328 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 literal 0 HcmV?d00001 diff --git a/test/huxley/VerticalSpacing.hux/record.json b/test/huxley/VerticalSpacing.hux/record.json new file mode 100644 index 000000000..3cae6ac65 --- /dev/null +++ b/test/huxley/VerticalSpacing.hux/record.json @@ -0,0 +1,5 @@ +[ + { + "action": "screenshot" + } +]