Beispiel #1
0
        /// <summary>
        /// Performs the conversion procedure.
        /// </summary>
        /// <param name="expr">The expression to convert.</param>
        /// <returns>The conversion result.</returns>
        public override string Convert(LatexExpression expr)
        {
            if (expr.Expressions == null)
            {
                return("");
            }
            GetParameters();
            var bld = new StringBuilder();

            if (_mathMode)
            {
                bld.Append("<mover accent=\"true\">\n");
                if (!_stretchy)
                {
                    bld.Append(expr.Expressions[0][0].Convert());
                }
                else
                {
                    bld.Append(SequenceConverter.ConvertOutline(expr.Expressions[0], expr.Customization));
                }
                bld.Append("<mo stretchy=\"true\">" + _value + "</mo>\n</mover>\n");
            }
            else
            {
                MathConverter.AppendMathProlog(bld, "accent", true, expr.Customization);
                bld.Append("<mrow>");
                bld.Append("<mover accent=\"true\">\n");
                bld.Append(expr.Expressions[0][0].Convert());
                bld.Append("<mo>" + _value + "</mo>\n</mover>\n");
                bld.Append("</mrow>\n");
                MathConverter.AppendMathEpilog(bld);
            }
            return(bld.ToString());
        }
        /// <summary>
        /// Performs the conversion procedure (comments the expression).
        /// </summary>
        /// <param name="expr">The expression to convert.</param>
        /// <returns>The conversion result.</returns>
        public override string Convert(LatexExpression expr)
        {
            var bld = new StringBuilder();

            MathConverter.AppendMathProlog(bld, "eqnarray", false, expr.Customization);
            var rows = expr.Expressions[0];

            bld.Append("<mtable>\n");
            for (int i = 0; i < rows.Count; i++)
            {
                bld.Append("<mtr>\n");
                for (int j = 0; j < rows[i].Expressions[0].Count; j++)
                {
                    bld.Append("<mtd columnalign=\"left\">\n<mrow>\n");
                    bld.Append(SequenceConverter.ConvertOutline(rows[i].Expressions[0][j].Expressions[0], expr.Customization));
                    bld.Append("</mrow>\n</mtd>\n");
                }
                bld.Append("</mtr>\n");
            }
            bld.Append("</mtable>\n");
            MathConverter.AppendMathEpilog(bld);
            return(bld.ToString());
        }