* Height of square root [not found] ` <200904180129.31516@centrum.cz> @ 2009-04-17 23:29 ` Tomas Kisela 2009-04-18 8:09 ` Taco Hoekwater 0 siblings, 1 reply; 4+ messages in thread From: Tomas Kisela @ 2009-04-17 23:29 UTC (permalink / raw) To: ntg-context [-- Attachment #1: Type: text/plain, Size: 695 bytes --] Hi everybody, There's my issue: If I switch a size of body font, the height of square root doesn't adapt well for letters exceeding a baseline (in my example "y"). Here is my code: \starttext \startformula \sqrt{x^2+y^2} \sqrt{x^2+a^2} \stopformula \switchtobodyfont[17pt] \startformula \sqrt{x^2+y^2} \sqrt{x^2+a^2} \stopformula \switchtobodyfont[23pt] \startformula \sqrt{x^2+y^2} \sqrt{x^2+a^2} \stopformula \stoptext If I compile it on http://live.contextgarden.net/, everything looks fine, but on my ConTeXt (2009.04.17 19:32 MKIV on Win Vista) I get the result in attachment. Do you have any ideas what's the problem and how can I fix it? Thanks, Tomas [-- Attachment #2: sqrt.pdf --] [-- Type: application/pdf, Size: 18167 bytes --] [-- Attachment #3: Type: text/plain, Size: 487 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Height of square root 2009-04-17 23:29 ` Height of square root Tomas Kisela @ 2009-04-18 8:09 ` Taco Hoekwater 2009-04-18 10:27 ` Hans Hagen 2009-04-18 21:38 ` Tomas Kisela 0 siblings, 2 replies; 4+ messages in thread From: Taco Hoekwater @ 2009-04-18 8:09 UTC (permalink / raw) To: mailing list for ConTeXt users [-- Attachment #1: Type: text/plain, Size: 742 bytes --] Tomas Kisela wrote: > Hi everybody, > > There's my issue: > If I switch a size of body font, the height of square root doesn't adapt well for letters exceeding a baseline (in my example "y"). Here is my code: > > \starttext > \startformula > \sqrt{x^2+y^2} \sqrt{x^2+a^2} > \stopformula > \switchtobodyfont[17pt] > \startformula > \sqrt{x^2+y^2} \sqrt{x^2+a^2} > \stopformula > \switchtobodyfont[23pt] > \startformula > \sqrt{x^2+y^2} \sqrt{x^2+a^2} > \stopformula > \stoptext > > Do you have any ideas what's the problem and how can I fix it? There is a bug in math-dim.lua: the \Umathradicalvgap parameters are not set up properly. Attached is an improved version. Hans, can you put the fix in the next beta? Best wishes, Taco [-- Attachment #2: math-dim.lua --] [-- Type: text/plain, Size: 13863 bytes --] if not modules then modules = { } end modules ['math-dim'] = { version = 1.001, comment = "companion to math-ini.tex", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE / ConTeXt Development Team", license = "see context related readme files" } -- Beware: only Taco really understands what these dimensions do so if you -- run into problems ... local abs, next = math.abs, next mathematics = mathematics or { } local defaults = { ['axis']={ ['default']={ "AxisHeight", "axis_height" }, }, ['accent_base_height']={ ['default']={ "AccentBaseHeight", "x_height" }, }, ['fraction_del_size']={ ['default']={ "0", "delim2" }, ['cramped_display_style']={ "0", "delim1" }, ['display_style']={ "0", "delim1" }, }, ['fraction_denom_down']={ ['default']={ "FractionDenominatorShiftDown", "denom2" }, ['cramped_display_style']={ "FractionDenominatorDisplayStyleShiftDown", "denom1" }, ['display_style']={ "FractionDenominatorDisplayStyleShiftDown", "denom1" }, }, ['fraction_denom_vgap']={ ['default']={ "FractionDenominatorGapMin", "default_rule_thickness" }, ['cramped_display_style']={ "FractionDenominatorDisplayStyleGapMin", "3*default_rule_thickness" }, ['display_style']={ "FractionDenominatorDisplayStyleGapMin", "3*default_rule_thickness" }, }, ['fraction_num_up']={ ['default']={ "FractionNumeratorShiftUp", "num2" }, ['cramped_display_style']={ "FractionNumeratorDisplayStyleShiftUp", "num1" }, ['display_style']={ "FractionNumeratorDisplayStyleShiftUp", "num1" }, }, ['fraction_num_vgap']={ ['default']={ "FractionNumeratorGapMin", "default_rule_thickness" }, ['cramped_display_style']={ "FractionNumeratorDisplayStyleGapMin", "3*default_rule_thickness" }, ['display_style']={ "FractionNumeratorDisplayStyleGapMin", "3*default_rule_thickness" }, }, ['fraction_rule']={ ['default']={ "FractionRuleThickness", "default_rule_thickness" }, }, ['limit_above_bgap']={ ['default']={ "UpperLimitBaselineRiseMin", "big_op_spacing3" }, }, ['limit_above_kern']={ ['default']={ "0", "big_op_spacing5" }, }, ['limit_above_vgap']={ ['default']={ "UpperLimitGapMin", "big_op_spacing1" }, }, ['limit_below_bgap']={ ['default']={ "LowerLimitBaselineDropMin", "big_op_spacing4" }, }, ['limit_below_kern']={ ['default']={ "0", "big_op_spacing5" }, }, ['limit_below_vgap']={ ['default']={ "LowerLimitGapMin", "big_op_spacing2" }, }, --~ ['....']={ --~ ['default']={ "DisplayOperatorMinHeight", "....." }, --~ }, ['overbar_kern']={ ['default']={ "OverbarExtraAscender", "default_rule_thickness" }, }, ['overbar_rule']={ ['default']={ "OverbarRuleThickness", "default_rule_thickness" }, }, ['overbar_vgap']={ ['default']={ "OverbarVerticalGap", "3*default_rule_thickness" }, }, ['quad']={ ['default']={ "font_size(f)", "math_quad" }, }, ['radical_kern']={ ['default']={ "RadicalExtraAscender", "default_rule_thickness" }, }, ['radical_rule']={ ['default']={ "RadicalRuleThickness", "<not set>" }, }, ['radical_vgap']={ ['default']={ "RadicalVerticalGap", "default_rule_thickness+(abs(default_rule_thickness)/4)" }, ['display_style']={ "RadicalDisplayStyleVerticalGap", "default_rule_thickness+(abs(math_x_height)/4)" }, }, ['space_after_script']={ ['default']={ "SpaceAfterScript", "script_space" }, }, ['stack_denom_down']={ ['default']={ "StackBottomShiftDown", "denom2" }, ['cramped_display_style']={ "StackBottomDisplayStyleShiftDown", "denom1" }, ['display_style']={ "StackBottomDisplayStyleShiftDown", "denom1" }, }, ['stack_num_up']={ ['default']={ "StackTopShiftUp", "num3" }, ['cramped_display_style']={ "StackTopDisplayStyleShiftUp", "num1" }, ['display_style']={ "StackTopDisplayStyleShiftUp", "num1" }, }, ['stack_vgap']={ ['default']={ "StackGapMin", "3*default_rule_thickness" }, ['cramped_display_style']={ "StackDisplayStyleGapMin", "7*default_rule_thickness" }, ['display_style']={ "StackDisplayStyleGapMin", "7*default_rule_thickness" }, }, ['sub_shift_down']={ ['default']={ "SubscriptShiftDown", "sub1" }, }, ['sub_shift_drop']={ ['default']={ "SubscriptBaselineDropMin", "sub_drop" }, }, ['sub_sup_shift_down']={ ['default']={ "SubscriptShiftDown", "sub2" }, }, ['sub_top_max']={ ['default']={ "SubscriptTopMax", "abs(math_x_height*4)/5" }, }, ['subsup_vgap']={ ['default']={ "SubSuperscriptGapMin", "4*default_rule_thickness" }, }, ['sup_bottom_min']={ ['default']={ "SuperscriptBottomMin", "abs(math_x_height)/4" }, }, ['sup_shift_drop']={ ['default']={ "SuperscriptBaselineDropMax", "sup_drop" }, }, ['sup_shift_up']={ ['cramped_display_style']={ "SuperscriptShiftUpCramped", "sup3" }, ['cramped_script_script_style']={ "SuperscriptShiftUpCramped", "sup3" }, ['cramped_script_style']={ "SuperscriptShiftUpCramped", "sup3" }, ['cramped_text_style']={ "SuperscriptShiftUpCramped", "sup3" }, ['display_style']={ "SuperscriptShiftUp", "sup1" }, ['script_script_style']={ "SuperscriptShiftUp", "sup2" }, ['script_style']={ "SuperscriptShiftUp", "sup2" }, ['text_style']={ "SuperscriptShiftUp", "sup2" }, }, ['sup_sub_bottom_max']={ ['default']={ "SuperscriptBottomMaxWithSubscript", "abs(math_x_height*4)/5" }, }, ['underbar_kern']={ ['default']={ "UnderbarExtraDescender", "0" }, }, ['underbar_rule']={ ['default']={ "UnderbarRuleThickness", "default_rule_thickness" }, }, ['underbar_vgap']={ ['default']={ "UnderbarVerticalGap", "3*default_rule_thickness" }, }, ['connector_overlap_min']={ ['default']={ "MinConnectorOverlap", "0.25*default_rule_thickness" }, }, ['over_delimiter_vgap']={ ['default']={ "StretchStackGapBelowMin", "big_op_spacing1" }, }, ['over_delimiter_bgap']={ ['default']={ "StretchStackTopShiftUp", "big_op_spacing3" }, }, ['under_delimiter_vgap']={ ['default']={ "StretchStackGapAboveMin", "big_op_spacing2" }, }, ['under_delimiter_bgap']={ ['default']={ "StretchStackBottomShiftDown", "big_op_spacing4" }, }, } local styles = { 'cramped_display_style', 'cramped_script_script_style', 'cramped_script_style', 'cramped_text_style', 'display_style', 'script_script_style', 'script_style', 'text_style', } for k, v in next, defaults do for _, s in next, styles do if not v[s] then v[s] = v.default end end end -- we cannot use a metatable because we do a copy (takes a bit more work) -- -- local mt = { } setmetatable(defaults,mt) -- -- mt.__index = function(t,s) -- texio.write_nl("GETTING " .. s) -- return t.default or t.text_style or 0 -- end function mathematics.dimensions(dimens) if dimens.SpaceAfterScript then return { }, table.fastcopy(dimens) elseif dimens.AxisHeight or dimens.axis_height then local t = { } local math_x_height = dimens.x_height or 10*65526 local default_rule_thickness = dimens.FractionDenominatorGapMin or dimens.default_rule_thickness or 0.4*65526 dimens["0"] = 0 dimens["0.25*default_rule_thickness"] = default_rule_thickness/4 dimens["3*default_rule_thickness"] = 3*default_rule_thickness dimens["4*default_rule_thickness"] = 4*default_rule_thickness dimens["7*default_rule_thickness"] = 7*default_rule_thickness dimens["abs(math_x_height*4)/5"] = abs(math_x_height * 4) / 5 dimens["default_rule_thickness+(abs(default_rule_thickness)/4)"] = default_rule_thickness+(abs(default_rule_thickness)/4) dimens["default_rule_thickness+(abs(math_x_height)/4)"] = default_rule_thickness+(abs(math_x_height)/4) dimens["abs(math_x_height)/4"] = abs(math_x_height)/4 dimens["abs(math_x_height*4)/5"] = abs(math_x_height*4)/5 dimens["<not set>"] = false dimens["script_space"] = false -- at macro level for variable, styles in next, defaults do local tt = { } for style, default in next, styles do local one, two = default[1], default[2] local value = dimens[one] if value then tt[style] = value else value = dimens[two] if value == false then tt[style] = nil else tt[style] = value or 0 end end end t[variable] = tt end local d = { AxisHeight = t . axis . text_style, AccentBaseHeight = t . accent_base_height . text_style, FractionDenominatorDisplayStyleGapMin = t . fraction_denom_vgap . display_style, FractionDenominatorDisplayStyleShiftDown = t . fraction_denom_down . display_style, FractionDenominatorGapMin = t . fraction_denom_vgap . text_style, FractionDenominatorShiftDown = t . fraction_denom_down . text_style, FractionNumeratorDisplayStyleGapMin = t . fraction_num_vgap . display_style, FractionNumeratorDisplayStyleShiftUp = t . fraction_num_up . display_style, FractionNumeratorGapMin = t . fraction_num_vgap . text_style, FractionNumeratorShiftUp = t . fraction_num_up . text_style, FractionRuleThickness = t . fraction_rule . text_style, LowerLimitBaselineDropMin = t . limit_below_bgap . text_style, LowerLimitGapMin = t . limit_below_vgap . text_style, OverbarExtraAscender = t . overbar_kern . text_style, OverbarRuleThickness = t . overbar_rule . text_style, OverbarVerticalGap = t . overbar_vgap . text_style, RadicalDisplayStyleVerticalGap = t . radical_vgap . display_style, RadicalExtraAscender = t . radical_kern . text_style, RadicalRuleThickness = t . radical_rule . text_style, RadicalVerticalGap = t . radical_vgap . text_style, SpaceAfterScript = t . space_after_script . text_style, StackBottomDisplayStyleShiftDown = t . stack_denom_down . display_style, StackBottomShiftDown = t . stack_denom_down . text_style, StackDisplayStyleGapMin = t . stack_vgap . display_style, StackGapMin = t . stack_vgap . text_style, StackTopDisplayStyleShiftUp = t . stack_num_up . display_style, StackTopShiftUp = t . stack_num_up . text_style, SubscriptBaselineDropMin = t . sub_shift_drop . text_style, SubscriptShiftDown = t . sub_shift_down . text_style, SubscriptTopMax = t . sub_top_max . text_style, SubSuperscriptGapMin = t . subsup_vgap . text_style, SuperscriptBaselineDropMax = t . sup_shift_drop . text_style, SuperscriptBottomMaxWithSubscript = t . sup_sub_bottom_max . text_style, SuperscriptBottomMin = t . sup_bottom_min . text_style, SuperscriptShiftUp = t . sup_shift_up . text_style, SuperscriptShiftUpCramped = t . sup_shift_up . cramped_text_style, UnderbarExtraDescender = t . underbar_kern . text_style, UnderbarRuleThickness = t . underbar_rule . text_style, UnderbarVerticalGap = t . underbar_vgap . text_style, UpperLimitBaselineRiseMin = t . limit_above_bgap . text_style, UpperLimitGapMin = t . limit_above_vgap . text_style, MinConnectorOverlap = t . connector_overlap_min . text_style, StretchStackGapBelowMin = t . over_delimiter_vgap . text_style, StretchStackTopShiftUp = t . over_delimiter_bgap . text_style, StretchStackGapAboveMin = t . under_delimiter_vgap . text_style, StretchStackBottomShiftDown = t . under_delimiter_bgap . text_style, } d.AccentBaseHeight = 0 --~ texio.write_nl(table.serialize(d)) return t, d -- this might change else return { }, { } end end [-- Attachment #3: Type: text/plain, Size: 487 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Height of square root 2009-04-18 8:09 ` Taco Hoekwater @ 2009-04-18 10:27 ` Hans Hagen 2009-04-18 21:38 ` Tomas Kisela 1 sibling, 0 replies; 4+ messages in thread From: Hans Hagen @ 2009-04-18 10:27 UTC (permalink / raw) To: mailing list for ConTeXt users Taco Hoekwater wrote: > Tomas Kisela wrote: >> Hi everybody, >> >> There's my issue: >> If I switch a size of body font, the height of square root doesn't >> adapt well for letters exceeding a baseline (in my example "y"). Here >> is my code: >> >> \starttext >> \startformula \sqrt{x^2+y^2} \sqrt{x^2+a^2} >> \stopformula >> \switchtobodyfont[17pt] >> \startformula \sqrt{x^2+y^2} \sqrt{x^2+a^2} >> \stopformula >> \switchtobodyfont[23pt] >> \startformula \sqrt{x^2+y^2} \sqrt{x^2+a^2} >> \stopformula >> \stoptext >> >> Do you have any ideas what's the problem and how can I fix it? > > There is a bug in math-dim.lua: the \Umathradicalvgap parameters are not > set up properly. Attached is an improved version. Hans, can you put the > fix in the next beta? sure ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Height of square root 2009-04-18 8:09 ` Taco Hoekwater 2009-04-18 10:27 ` Hans Hagen @ 2009-04-18 21:38 ` Tomas Kisela 1 sibling, 0 replies; 4+ messages in thread From: Tomas Kisela @ 2009-04-18 21:38 UTC (permalink / raw) To: ntg-context Thanks a lot. Tomas ______________________________________________________________ > Od: taco@elvenkind.com > Komu: mailing list for ConTeXt users <ntg-context@ntg.nl> > Datum: 18.04.2009 10:12 > Předmět: Re: [NTG-context] Height of square root > >Tomas Kisela wrote: >> Hi everybody, >> > There's my issue: >> If I switch a size of body font, the height of square root doesn't adapt well for letters exceeding a baseline (in my example "y"). Here is my code: >> > starttext >> startformula > sqrt{x^2+y^2} sqrt{x^2+a^2} >> stopformula >> switchtobodyfont[17pt] >> startformula > sqrt{x^2+y^2} sqrt{x^2+a^2} >> stopformula >> switchtobodyfont[23pt] >> startformula > sqrt{x^2+y^2} sqrt{x^2+a^2} >> stopformula >> stoptext >> > Do you have any ideas what's the problem and how can I fix it? > >There is a bug in math-dim.lua: the Umathradicalvgap parameters are not >set up properly. Attached is an improved version. Hans, can you put the >fix in the next beta? > >Best wishes, >Taco > > > >if not modules then modules = { } end modules ['math-dim'] = { > version = 1.001, > comment = "companion to math-ini.tex", > author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", > copyright = "PRAGMA ADE / ConTeXt Development Team", > license = "see context related readme files" >} > >-- Beware: only Taco really understands what these dimensions do so if you >-- run into problems ... > >local abs, next = math.abs, next > >mathematics = mathematics or { } > >local defaults = { > ['axis']={ > ['default']={ "AxisHeight", "axis_height" }, > }, > ['accent_base_height']={ > ['default']={ "AccentBaseHeight", "x_height" }, > }, > ['fraction_del_size']={ > ['default']={ "0", "delim2" }, > ['cramped_display_style']={ "0", "delim1" }, > ['display_style']={ "0", "delim1" }, > }, > ['fraction_denom_down']={ > ['default']={ "FractionDenominatorShiftDown", "denom2" }, > ['cramped_display_style']={ "FractionDenominatorDisplayStyleShiftDown", "denom1" }, > ['display_style']={ "FractionDenominatorDisplayStyleShiftDown", "denom1" }, > }, > ['fraction_denom_vgap']={ > ['default']={ "FractionDenominatorGapMin", "default_rule_thickness" }, > ['cramped_display_style']={ "FractionDenominatorDisplayStyleGapMin", "3*default_rule_thickness" }, > ['display_style']={ "FractionDenominatorDisplayStyleGapMin", "3*default_rule_thickness" }, > }, > ['fraction_num_up']={ > ['default']={ "FractionNumeratorShiftUp", "num2" }, > ['cramped_display_style']={ "FractionNumeratorDisplayStyleShiftUp", "num1" }, > ['display_style']={ "FractionNumeratorDisplayStyleShiftUp", "num1" }, > }, > ['fraction_num_vgap']={ > ['default']={ "FractionNumeratorGapMin", "default_rule_thickness" }, > ['cramped_display_style']={ "FractionNumeratorDisplayStyleGapMin", "3*default_rule_thickness" }, > ['display_style']={ "FractionNumeratorDisplayStyleGapMin", "3*default_rule_thickness" }, > }, > ['fraction_rule']={ > ['default']={ "FractionRuleThickness", "default_rule_thickness" }, > }, > ['limit_above_bgap']={ > ['default']={ "UpperLimitBaselineRiseMin", "big_op_spacing3" }, > }, > ['limit_above_kern']={ > ['default']={ "0", "big_op_spacing5" }, > }, > ['limit_above_vgap']={ > ['default']={ "UpperLimitGapMin", "big_op_spacing1" }, > }, > ['limit_below_bgap']={ > ['default']={ "LowerLimitBaselineDropMin", "big_op_spacing4" }, > }, > ['limit_below_kern']={ > ['default']={ "0", "big_op_spacing5" }, > }, > ['limit_below_vgap']={ > ['default']={ "LowerLimitGapMin", "big_op_spacing2" }, > }, > >--~ ['....']={ >--~ ['default']={ "DisplayOperatorMinHeight", "....." }, >--~ }, > > ['overbar_kern']={ > ['default']={ "OverbarExtraAscender", "default_rule_thickness" }, > }, > ['overbar_rule']={ > ['default']={ "OverbarRuleThickness", "default_rule_thickness" }, > }, > ['overbar_vgap']={ > ['default']={ "OverbarVerticalGap", "3*default_rule_thickness" }, > }, > ['quad']={ > ['default']={ "font_size(f)", "math_quad" }, > }, > ['radical_kern']={ > ['default']={ "RadicalExtraAscender", "default_rule_thickness" }, > }, > ['radical_rule']={ > ['default']={ "RadicalRuleThickness", "<not set>" }, > }, > ['radical_vgap']={ > ['default']={ "RadicalVerticalGap", "default_rule_thickness+(abs(default_rule_thickness)/4)" }, > ['display_style']={ "RadicalDisplayStyleVerticalGap", "default_rule_thickness+(abs(math_x_height)/4)" }, > }, > ['space_after_script']={ > ['default']={ "SpaceAfterScript", "script_space" }, > }, > ['stack_denom_down']={ > ['default']={ "StackBottomShiftDown", "denom2" }, > ['cramped_display_style']={ "StackBottomDisplayStyleShiftDown", "denom1" }, > ['display_style']={ "StackBottomDisplayStyleShiftDown", "denom1" }, > }, > ['stack_num_up']={ > ['default']={ "StackTopShiftUp", "num3" }, > ['cramped_display_style']={ "StackTopDisplayStyleShiftUp", "num1" }, > ['display_style']={ "StackTopDisplayStyleShiftUp", "num1" }, > }, > ['stack_vgap']={ > ['default']={ "StackGapMin", "3*default_rule_thickness" }, > ['cramped_display_style']={ "StackDisplayStyleGapMin", "7*default_rule_thickness" }, > ['display_style']={ "StackDisplayStyleGapMin", "7*default_rule_thickness" }, > }, > ['sub_shift_down']={ > ['default']={ "SubscriptShiftDown", "sub1" }, > }, > ['sub_shift_drop']={ > ['default']={ "SubscriptBaselineDropMin", "sub_drop" }, > }, > ['sub_sup_shift_down']={ > ['default']={ "SubscriptShiftDown", "sub2" }, > }, > ['sub_top_max']={ > ['default']={ "SubscriptTopMax", "abs(math_x_height*4)/5" }, > }, > ['subsup_vgap']={ > ['default']={ "SubSuperscriptGapMin", "4*default_rule_thickness" }, > }, > ['sup_bottom_min']={ > ['default']={ "SuperscriptBottomMin", "abs(math_x_height)/4" }, > }, > ['sup_shift_drop']={ > ['default']={ "SuperscriptBaselineDropMax", "sup_drop" }, > }, > ['sup_shift_up']={ > ['cramped_display_style']={ "SuperscriptShiftUpCramped", "sup3" }, > ['cramped_script_script_style']={ "SuperscriptShiftUpCramped", "sup3" }, > ['cramped_script_style']={ "SuperscriptShiftUpCramped", "sup3" }, > ['cramped_text_style']={ "SuperscriptShiftUpCramped", "sup3" }, > ['display_style']={ "SuperscriptShiftUp", "sup1" }, > ['script_script_style']={ "SuperscriptShiftUp", "sup2" }, > ['script_style']={ "SuperscriptShiftUp", "sup2" }, > ['text_style']={ "SuperscriptShiftUp", "sup2" }, > }, > ['sup_sub_bottom_max']={ > ['default']={ "SuperscriptBottomMaxWithSubscript", "abs(math_x_height*4)/5" }, > }, > ['underbar_kern']={ > ['default']={ "UnderbarExtraDescender", "0" }, > }, > ['underbar_rule']={ > ['default']={ "UnderbarRuleThickness", "default_rule_thickness" }, > }, > ['underbar_vgap']={ > ['default']={ "UnderbarVerticalGap", "3*default_rule_thickness" }, > }, > ['connector_overlap_min']={ > ['default']={ "MinConnectorOverlap", "0.25*default_rule_thickness" }, > }, > ['over_delimiter_vgap']={ > ['default']={ "StretchStackGapBelowMin", "big_op_spacing1" }, > }, > ['over_delimiter_bgap']={ > ['default']={ "StretchStackTopShiftUp", "big_op_spacing3" }, > }, > ['under_delimiter_vgap']={ > ['default']={ "StretchStackGapAboveMin", "big_op_spacing2" }, > }, > ['under_delimiter_bgap']={ > ['default']={ "StretchStackBottomShiftDown", "big_op_spacing4" }, > }, >} > >local styles = { > 'cramped_display_style', > 'cramped_script_script_style', > 'cramped_script_style', > 'cramped_text_style', > 'display_style', > 'script_script_style', > 'script_style', > 'text_style', >} > >for k, v in next, defaults do > for _, s in next, styles do > if not v[s] then > v[s] = v.default > end > end >end > >-- we cannot use a metatable because we do a copy (takes a bit more work) >-- >-- local mt = { } setmetatable(defaults,mt) >-- >-- mt.__index = function(t,s) >-- texio.write_nl("GETTING " .. s) >-- return t.default or t.text_style or 0 >-- end > >function mathematics.dimensions(dimens) > if dimens.SpaceAfterScript then > return { }, table.fastcopy(dimens) > elseif dimens.AxisHeight or dimens.axis_height then > local t = { } > local math_x_height = dimens.x_height or 10*65526 > local default_rule_thickness = dimens.FractionDenominatorGapMin or dimens.default_rule_thickness or 0.4*65526 > dimens["0"] = 0 > dimens["0.25*default_rule_thickness"] = default_rule_thickness/4 > dimens["3*default_rule_thickness"] = 3*default_rule_thickness > dimens["4*default_rule_thickness"] = 4*default_rule_thickness > dimens["7*default_rule_thickness"] = 7*default_rule_thickness > dimens["abs(math_x_height*4)/5"] = abs(math_x_height * 4) / 5 > dimens["default_rule_thickness+(abs(default_rule_thickness)/4)"] = default_rule_thickness+(abs(default_rule_thickness)/4) > dimens["default_rule_thickness+(abs(math_x_height)/4)"] = default_rule_thickness+(abs(math_x_height)/4) > dimens["abs(math_x_height)/4"] = abs(math_x_height)/4 > dimens["abs(math_x_height*4)/5"] = abs(math_x_height*4)/5 > dimens["<not set>"] = false > dimens["script_space"] = false -- at macro level > for variable, styles in next, defaults do > local tt = { } > for style, default in next, styles do > local one, two = default[1], default[2] > local value = dimens[one] > if value then > tt[style] = value > else > value = dimens[two] > if value == false then > tt[style] = nil > else > tt[style] = value or 0 > end > end > end > t[variable] = tt > end > local d = { > AxisHeight = t . axis . text_style, > AccentBaseHeight = t . accent_base_height . text_style, > FractionDenominatorDisplayStyleGapMin = t . fraction_denom_vgap . display_style, > FractionDenominatorDisplayStyleShiftDown = t . fraction_denom_down . display_style, > FractionDenominatorGapMin = t . fraction_denom_vgap . text_style, > FractionDenominatorShiftDown = t . fraction_denom_down . text_style, > FractionNumeratorDisplayStyleGapMin = t . fraction_num_vgap . display_style, > FractionNumeratorDisplayStyleShiftUp = t . fraction_num_up . display_style, > FractionNumeratorGapMin = t . fraction_num_vgap . text_style, > FractionNumeratorShiftUp = t . fraction_num_up . text_style, > FractionRuleThickness = t . fraction_rule . text_style, > LowerLimitBaselineDropMin = t . limit_below_bgap . text_style, > LowerLimitGapMin = t . limit_below_vgap . text_style, > OverbarExtraAscender = t . overbar_kern . text_style, > OverbarRuleThickness = t . overbar_rule . text_style, > OverbarVerticalGap = t . overbar_vgap . text_style, > RadicalDisplayStyleVerticalGap = t . radical_vgap . display_style, > RadicalExtraAscender = t . radical_kern . text_style, > RadicalRuleThickness = t . radical_rule . text_style, > RadicalVerticalGap = t . radical_vgap . text_style, > SpaceAfterScript = t . space_after_script . text_style, > StackBottomDisplayStyleShiftDown = t . stack_denom_down . display_style, > StackBottomShiftDown = t . stack_denom_down . text_style, > StackDisplayStyleGapMin = t . stack_vgap . display_style, > StackGapMin = t . stack_vgap . text_style, > StackTopDisplayStyleShiftUp = t . stack_num_up . display_style, > StackTopShiftUp = t . stack_num_up . text_style, > SubscriptBaselineDropMin = t . sub_shift_drop . text_style, > SubscriptShiftDown = t . sub_shift_down . text_style, > SubscriptTopMax = t . sub_top_max . text_style, > SubSuperscriptGapMin = t . subsup_vgap . text_style, > SuperscriptBaselineDropMax = t . sup_shift_drop . text_style, > SuperscriptBottomMaxWithSubscript = t . sup_sub_bottom_max . text_style, > SuperscriptBottomMin = t . sup_bottom_min . text_style, > SuperscriptShiftUp = t . sup_shift_up . text_style, > SuperscriptShiftUpCramped = t . sup_shift_up . cramped_text_style, > UnderbarExtraDescender = t . underbar_kern . text_style, > UnderbarRuleThickness = t . underbar_rule . text_style, > UnderbarVerticalGap = t . underbar_vgap . text_style, > UpperLimitBaselineRiseMin = t . limit_above_bgap . text_style, > UpperLimitGapMin = t . limit_above_vgap . text_style, > MinConnectorOverlap = t . connector_overlap_min . text_style, > StretchStackGapBelowMin = t . over_delimiter_vgap . text_style, > StretchStackTopShiftUp = t . over_delimiter_bgap . text_style, > StretchStackGapAboveMin = t . under_delimiter_vgap . text_style, > StretchStackBottomShiftDown = t . under_delimiter_bgap . text_style, > } > d.AccentBaseHeight = 0 >--~ texio.write_nl(table.serialize(d)) > return t, d -- this might change > else > return { }, { } > end >end > >___________________________________________________________________________________ >If your question is of interest to others as well, please add an entry to the Wiki! > >maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context >webpage : http://www.pragma-ade.nl / http://tex.aanhet.net >archive : https://foundry.supelec.fr/projects/contextrev/ >wiki : http://contextgarden.net >___________________________________________________________________________________ > > ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-04-18 21:38 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <200904180122.8726@centrum.cz> [not found] ` <200904180123.8966@centrum.cz> [not found] ` <200904180124.30059@centrum.cz> [not found] ` <200904180125.11300@centrum.cz> [not found] ` <200904180126.11414@centrum.cz> [not found] ` <200904180127.28464@centrum.cz> [not found] ` <200904180128.16558@centrum.cz> [not found] ` <200904180129.31516@centrum.cz> 2009-04-17 23:29 ` Height of square root Tomas Kisela 2009-04-18 8:09 ` Taco Hoekwater 2009-04-18 10:27 ` Hans Hagen 2009-04-18 21:38 ` Tomas Kisela
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).