//.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <param name="strTextName"></param>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public static M.MathFunction MakeMathFunction(string strTextName, params OpenXmlElement[] parameter)
        {
            M.MathFunction mathFunc = new M.MathFunction( );

            //---------------------------------------------
            M.FunctionProperties funcProperties = new M.FunctionProperties( );
            funcProperties.Append(OpenDocxMathExprs.MakeControlProperties( ));

            //---------------------------------------------
            M.FunctionName funcNaming = OpenDocxMathExprs.MakeFunctionName(strTextName);

            //---------------------------------------------
            M.DelimiterProperties delimProperties = new M.DelimiterProperties( );
            delimProperties.Append(OpenDocxMathExprs.MakeControlProperties(true));

            M.Base mathBaseParms = new M.Base( );
            foreach (OpenXmlElement value in parameter)
            {
                mathBaseParms.Append(value);
            }

            M.Delimiter delimiter = new M.Delimiter( );
            delimiter.Append(delimProperties);
            delimiter.Append(mathBaseParms);

            M.Base funcBase = new M.Base( );
            funcBase.Append(delimiter);

            //---------------------------------------------
            mathFunc.Append(funcProperties);
            mathFunc.Append(funcNaming);
            mathFunc.Append(funcBase);

            return(mathFunc);
        }
        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        private static M.FractionProperties MakeFractionProperties( )
        {
            M.FractionProperties properties = new M.FractionProperties( );

            properties.Append(OpenDocxMathExprs.MakeControlProperties());

            return(properties);
        }
        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static M.SubSuperscript MakeScriptBoth(string strBase, string strUpper, string strLower)
        {
            M.SubSuperscript script = new M.SubSuperscript( );

            M.SubSuperscriptProperties properties = new M.SubSuperscriptProperties( );

            properties.Append(OpenDocxMathExprs.MakeControlProperties(true));

            script.Append(properties);

            script.Append(OpenDocxMathExprs.MakeMathBase(strBase));
            script.Append(OpenDocxMathExprs.MakeScriptArgumentLower(strLower));
            script.Append(OpenDocxMathExprs.MakeScriptArgumentUpper(strUpper));

            return(script);
        }
        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public static M.Superscript MakeScriptUpper(string mathBase, string mathArgm)
        {
            M.SuperscriptProperties properties = new M.SuperscriptProperties( );

            properties.Append(OpenDocxMathExprs.MakeControlProperties(true));

            //---------------------------------------------
            M.Superscript script = new M.Superscript( );

            script.Append(properties);

            script.Append(OpenDocxMathExprs.MakeMathBase(mathBase));
            script.Append(OpenDocxMathExprs.MakeScriptArgumentUpper(mathArgm));

            return(script);
        }
        //.....................................................................
        /// <summary>
        ///
        /// </summary>
        /// <param name="strBase"></param>
        /// <param name="strDegree"></param>
        /// <returns></returns>
        public static M.Radical MakeMathRadical(string strBase, string strDegree)
        {
            M.Radical radical = new M.Radical( );

            M.RadicalProperties properties = new M.RadicalProperties( );
            properties.Append(OpenDocxMathExprs.MakeControlProperties(true));

            M.Base mathBAS = OpenDocxMathExprs.MakeMathBase(strBase);

            M.Degree mathDEG = OpenDocxMathExprs.MakeMathDegree(strDegree);

            radical.Append(properties);
            radical.Append(mathBAS);
            radical.Append(mathDEG);

            return(radical);
        }
        private static M.SubSuperscript MakeScriptBoth( )
        {
            M.SubSuperscript subSuperscript1 = new M.SubSuperscript( );

            M.SubSuperscriptProperties subSuperscriptProperties1 = new M.SubSuperscriptProperties( );

            subSuperscriptProperties1.Append(OpenDocxMathExprs.MakeControlProperties(true));

            M.Base base1 = OpenDocxMathExprs.MakeMathBase("A");      // new M.Base( );

            //---------------------------------------------
            M.SubArgument subArgument1 = OpenDocxMathExprs.MakeScriptArgumentLower("i");

            M.SuperArgument superArgument1 = OpenDocxMathExprs.MakeScriptArgumentUpper("w");

            //---------------------------------------------
            subSuperscript1.Append(subSuperscriptProperties1);
            subSuperscript1.Append(base1);
            subSuperscript1.Append(subArgument1);
            subSuperscript1.Append(superArgument1);

            return(subSuperscript1);
        }