Пример #1
0
        private Box LongDivisionStyle_shortstackedrightright(TexEnvironment environment)
        {
            var texFont = environment.MathFont;
            var style   = environment.Style;
            var axis    = texFont.GetAxisHeight(style);
            var defaultLineThickness = texFont.GetDefaultLineThickness(style);

            var divisor_quotient = new VerticalBox();
            var divisorbox       = this.DivisorAtom == null ? StrutBox.Empty : this.DivisorAtom.CreateBox(environment);
            var quotientbox      = this.QuotientAtom == null ? StrutBox.Empty : this.QuotientAtom.CreateBox(environment);
            var hlineseparator   = new HorizontalRule(environment, defaultLineThickness, quotientbox.TotalWidth, 0);

            divisor_quotient.Add(divisorbox);
            divisor_quotient.Add(hlineseparator);
            divisor_quotient.Add(quotientbox);

            var dividend_other = new VerticalBox();
            var dividendbox    = this.DividendAtom == null ? StrutBox.Empty : this.DividendAtom.CreateBox(environment);
            var otherbox       = this.OtherAtom == null ? StrutBox.Empty : this.OtherAtom.CreateBox(environment);

            dividend_other.Add(dividendbox);
            dividend_other.Add(otherbox);

            //double divquotheightsum =divisor_quotient.TotalHeight;
            var vlineseparator = new VerticalRule(environment, defaultLineThickness, divisorbox.TotalHeight + defaultLineThickness, -divisorbox.TotalHeight);

            var resultBox = new HorizontalBox();

            resultBox.Add(dividend_other);
            resultBox.Add(vlineseparator);
            resultBox.Add(divisor_quotient);

            return(resultBox);
        }
Пример #2
0
        private Box Enclosure_verticalstrike(TexEnvironment environment, Box morphbox)
        {
            var texFont = environment.MathFont;
            var style   = environment.Style;
            var axis    = texFont.GetAxisHeight(style);
            var defaultLineThickness = texFont.GetDefaultLineThickness(style);

            var vrule = new VerticalRule(environment, defaultLineThickness, morphbox.Height + morphbox.Depth, -morphbox.Height);
            var resbx = new HorizontalBox();

            resbx.Add(morphbox);
            resbx.Add(new StrutBox(-morphbox.Width / 2, -morphbox.Height, 0, 0));
            resbx.Add(vrule);
            return(resbx);
        }
Пример #3
0
        private Box LongDivisionStyle_righttop(TexEnvironment environment)
        {
            var texFont = environment.MathFont;
            var style   = environment.Style;
            var axis    = texFont.GetAxisHeight(style);
            var defaultLineThickness = texFont.GetDefaultLineThickness(style);

            var quotientbox = this.QuotientAtom == null ? StrutBox.Empty : this.QuotientAtom.CreateBox(environment);

            var dividend_divisor = new HorizontalBox();
            var dividendbox      = this.DividendAtom == null ? StrutBox.Empty : this.DividendAtom.CreateBox(environment);
            var divisorbox       = this.DivisorAtom == null ? StrutBox.Empty : this.DivisorAtom.CreateBox(environment);
            var divisorLpad      = new StrutBox(divisorbox.TotalWidth / 3, divisorbox.TotalHeight, 0, 0);
            var minorVsepline    = new VerticalRule(environment, defaultLineThickness, dividendbox.TotalHeight, 0);
            var minorHsepline    = new HorizontalRule(environment, defaultLineThickness, divisorbox.TotalWidth + divisorLpad.Width, 0);


            dividend_divisor.Add(dividendbox);
            dividend_divisor.Add(divisorbox);
            dividend_divisor.Add(minorVsepline);
            dividend_divisor.Add(new StrutBox(-(divisorbox.TotalWidth + divisorLpad.Width), 0, 0, 0));
            dividend_divisor.Add(minorHsepline);

            var majorsepline = new HorizontalRule(environment, defaultLineThickness, dividend_divisor.TotalWidth, 0);

            var otherbox = this.OtherAtom == null ? StrutBox.Empty : this.OtherAtom.CreateBox(environment);

            var resultBox = new VerticalBox();

            resultBox.Add(quotientbox);
            resultBox.Add(majorsepline);
            resultBox.Add(dividend_divisor);
            resultBox.Add(otherbox);

            return(resultBox);
        }