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); }
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); }
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); }