ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* 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).