//.....................................................................
        /// <summary>
        /// 使用常规的字符串生成一个分式(标准的、上下格式)
        /// </summary>
        /// <param name="upper"></param>
        /// <param name="lower"></param>
        /// <returns></returns>
        public static M.Fraction MakeFraction(string upper, string lower)
        {
            M.Fraction fraction = new M.Fraction( );

            M.Numerator upperNUM = new M.Numerator( );
            upperNUM.Append(OpenDocxMathExprs.MakeMathRun(upper));

            M.Denominator lowerDEN = new M.Denominator( );
            lowerDEN.Append(OpenDocxMathExprs.MakeMathRun(lower));

            fraction.Append(OpenDocxMathExprs.MakeFractionProperties( ));
            fraction.Append(upperNUM);
            fraction.Append(lowerDEN);

            return(fraction);
        }
        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <param name="upper"></param>
        /// <param name="lower"></param>
        /// <returns></returns>
        public static M.Fraction MakeFraction(OpenXmlElement upper, OpenXmlElement lower)
        {
            M.Fraction fraction = new M.Fraction( );

            M.Numerator upperNUM = new M.Numerator( );
            upperNUM.Append(upper);

            M.Denominator lowerDEN = new M.Denominator( );
            lowerDEN.Append(lower);

            fraction.Append(OpenDocxMathExprs.MakeFractionProperties( ));
            fraction.Append(upperNUM);
            fraction.Append(lowerDEN);

            return(fraction);
        }
        //.....................................................................
        /// <summary>
        /// 分子
        /// </summary>
        /// <returns></returns>
        private OpxM.Numerator mathNumer_B_B2_4AC( )
        {
            OpxM.Numerator numerator1 = new OpxM.Numerator( );

            OpxM.Run run3 = mathMINUS( );

            OpxM.Run run4 = mathB( );
            OpxM.Run run5 = mathPM( );

            //.....................................................................
            OpxM.Radical radical1 = new OpxM.Radical( );

            OpxM.RadicalProperties radicalProperties1 = new OpxM.RadicalProperties( );

            OpxM.HideDegree hideDegree1 = new OpxM.HideDegree( )
            {
                Val = OpxM.BooleanValues.One
            };

            OpxM.ControlProperties controlProperties2 = new OpxM.ControlProperties( );
            //RunProperties runProperties10 = CambriaFont2( );
            controlProperties2.Append(CambriaFont2( ));

            radicalProperties1.Append(hideDegree1);
            radicalProperties1.Append(controlProperties2);

            //---------------------------------------------
            OpxM.Degree degree1 = new OpxM.Degree( );

            OpxM.Base base1 = new OpxM.Base( );

            OpxM.Superscript superscript1 = new OpxM.Superscript( );

            OpxM.SuperscriptProperties superscriptProperties1 = new OpxM.SuperscriptProperties( );

            OpxM.ControlProperties controlProperties3 = new OpxM.ControlProperties( );

            //RunProperties runProperties11 = new RunProperties( );
            //RunFonts runFonts = new RunFonts( ) { Ascii = "Cambria Math", HighAnsi = "Cambria Math", EastAsia = "Cambria Math" };
            //runProperties11.Append( runFonts );

            controlProperties3.Append(this.CambriaFont2( ));

            superscriptProperties1.Append(controlProperties3);

            OpxM.Base base2 = new OpxM.Base( );

            //---------------------------------------------
            OpxM.Run run6 = mathB2( );

            base2.Append(run6);

            OpxM.SuperArgument superArgument1 = new OpxM.SuperArgument( );

            //---------------------------------------------
            OpxM.Run run7 = mathCP2( );

            //---------------------------------------------
            superArgument1.Append(run7);

            superscript1.Append(superscriptProperties1);
            superscript1.Append(base2);
            superscript1.Append(superArgument1);

            OpxM.Run run8 = mathCN4( );
            OpxM.Run run9 = mathAC( );

            //---------------------------------------------
            base1.Append(superscript1);

            base1.Append(run8);
            base1.Append(run9);

            radical1.Append(radicalProperties1);
            radical1.Append(degree1);
            radical1.Append(base1);

            numerator1.Append(run3);
            numerator1.Append(run4);
            numerator1.Append(run5);
            numerator1.Append(radical1);

            return(numerator1);
        }