[Aimmath-commit] AIM/WEB-INF/maple/aim LaTeX.mpl,1.5,1.6
Brought to you by:
gustav_delius,
npstrick
From: <mo...@us...> - 2003-09-10 02:38:14
|
Update of /cvsroot/aimmath/AIM/WEB-INF/maple/aim In directory sc8-pr-cvs1:/tmp/cvs-serv15309 Modified Files: LaTeX.mpl Log Message: fixed bug "missing parentheses around complex numbers" Index: LaTeX.mpl =================================================================== RCS file: /cvsroot/aimmath/AIM/WEB-INF/maple/aim/LaTeX.mpl,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** LaTeX.mpl 1 Sep 2003 16:34:42 -0000 1.5 --- LaTeX.mpl 10 Sep 2003 02:38:02 -0000 1.6 *************** *** 174,202 **** # KM `Package/Assign`( ! `latex/latex/*`, ! "", ! proc(e) ! local subexp, den, ee, subee, i, num, texlist, lnum,lden, `\\,`, `\\frac `, `\\sqrt `, ! `{`, `}`; ! global _LatexSmallFractionConstant; ! option ! `Copyright (c) 1992 by the University of Waterloo. All rights reserved.`; ! if type(op(1, e), 'numeric') and op(1, e) < 0 then ! RETURN(`latex/latex/copy`('`-`'), `latex/print`(-e)) ! fi; if type(op(1, e), 'numeric') then ! # KM ! # DIST i := _LatexSmallFractionConstant; ! # DIST _LatexSmallFractionConstant := 50; ! # END KM ! texlist := ! `latex/print`(op(1, e)), `\\,`, `latex/print`(subsop(1 = 1, e)) ! ; ! # KM ! # DIST _LatexSmallFractionConstant := i; ! # END KM ! RETURN(texlist) ! fi; texlist := NULL; num := 1; --- 174,196 ---- # KM `Package/Assign`( ! `latex/latex/*`, ! "", ! proc(e) ! local subexp, den, ee, ff, subee, i, k, num, texlist, `\\,`, ! `\\frac `, `\\sqrt `, `{`, `}`, ccnt, keepcnt, ll, nlist; ! global _LatexSmallFractionConstant; ! option `Copyright (c) 1992 by the University of Waterloo. All rights reserved.`; if type(op(1, e), 'numeric') and op(1, e) < 0 then ! LaTeX:-CountCharacters(1); ! return `latex/latex/copy`('`-`'), `latex/print`(-e) ! end if; if type(op(1, e), 'numeric') then ! # i := _LatexSmallFractionConstant; ! # _LatexSmallFractionConstant := 50; ! texlist := `latex/print`(op(1, e)), `\\,`, ! `latex/print`(subsop(1 = 1, e)); ! # _LatexSmallFractionConstant := i; ! return texlist ! end if; texlist := NULL; num := 1; *************** *** 206,269 **** if type(subee, 'fraction') then num := num*op(1, subee); den := den*op(2, subee) ! elif type(subee, '`^`') and type(op(2, subee), 'rational') and ! op(2, subee) < 0 then ! if type(subee,table) then ! den := den/op(subee) ! else ! den := den/subee ! fi ! else ! if type(subee,table) then ! num := num*op(subee) ! else ! num := num*subee ! fi ! fi ! od; if den <> 1 then ! if type(num, '`latex/istall`') or type(den, '`latex/istall`') then if num <> 1 then texlist := `latex/print`(num); ! if type(num, `+`) then ! texlist := `\\left(`, texlist, `\\right)` ! fi else texlist := NULL ! fi; ! if type(den, '`*`') then den := [op(den)] else den := [den] fi; for subexp in den do ! texlist := texlist, `latex/print`(1/subexp) ! od; texlist ! else ! lnum := `if`(type(num,table), ! `latex/print`(op(num)),`latex/print`(num)); ! lden := `if`(type(den,table), ! `latex/print`(op(den)),`latex/print`(den)); ! texlist := texlist, `{`, '`\\frac `', '`{`', ! lnum, '`}`', '`{`', lden, '`}`', `}`; ! fi else i := 1; ! for subee in ee do ! if type(subee, {'series', '`+`'}) then ! texlist := texlist, `latex/latex/prinpar`(subee) ! elif i < nops(ee) and type(subee, 'function') and ! member(op(0, subee), {diff, Diff}) then ! texlist := texlist, `latex/latex/prinpar`(subee) ! elif type(subee,table) then ! texlist := texlist,`latex/print`(op(subee)); ! else texlist := texlist, `latex/print`(subee) ! fi; if i < nops(ee) and ( ! i = 1 and type(op(1, ee), 'integer') or type(subee, '`!`') or ! type(subee, {'string', 'symbol'}) and 1 < length(subee) or ! has([`latex/print`(subee)], '`\\sqrt `')) then ! texlist := texlist, `\\,` ! fi; i := i + 1 ! od ! fi; ! RETURN(texlist) ! end ): --- 200,268 ---- if type(subee, 'fraction') then num := num*op(1, subee); den := den*op(2, subee) ! elif ! type(subee, '`^`') and type(op(2, subee), 'rational') ! and op(2, subee) < 0 then den := den/subee ! else num := num*subee ! end if ! end do; if den <> 1 then ! if type(num, '`latex/istall`') or ! type(den, '`latex/istall`') then if num <> 1 then texlist := `latex/print`(num); ! if type(num, '`+`') then texlist := ! ` \\left( `, texlist, ` \\right) ` ! end if else texlist := NULL ! end if; ! if type(den, '`*`') then den := [op(den)] ! else den := [den] ! end if; for subexp in den do ! nlist := `latex/print`(1/subexp); ! ll := LaTeX:-CheckLineBreak(); ! texlist := texlist, nlist, ll ! end do; texlist ! else texlist := texlist, `{`, '`\\frac `', '`{`', ! `latex/print`(num), '`}`', '`{`', ! `latex/print`(den), '`}`', `}` ! end if else i := 1; ! ff := [op(ee)]; ! for k to nops(ff) do ! keepcnt := LaTeX:-ResetCount(); ! if type(ff[k], {'series', '`+`'}) then ! nlist := `latex/latex/prinpar`(ff[k]) ! elif type(ff[k], 'complex'('numeric')) and ! nops(ff[k]) = 2 then ! nlist := `latex/latex/prinpar`(ff[k]) ! elif i < nops(ee) and type(ff[k], 'function') ! and member(op(0, ff[k]), {diff, Diff}) then ! nlist := `latex/latex/prinpar`(ff[k]) ! elif type(ff[k], 'function') and ! member(op(0, ff[k]), {`@`, `@@`}) then ! nlist := `latex/latex/prinpar`(ff[k]) ! elif type(ff[k], procedure) then ! nlist := `latex/latex/prinpar`(ff[k]) ! else nlist := `latex/print`(ff[k]) ! end if; if i < nops(ee) and ( ! i = 1 and type(op(1, ee), 'integer') or ! type(ff[k], '`!`') or ! type(ff[k], {'string', 'symbol'}) and ! 1 < length(ff[k]) or ! has([`latex/print`(ff[k])], '`\\sqrt `')) then ! nlist := nlist, `\\,` ! end if; ! ccnt := LaTeX:-SetCount(keepcnt); ! ll := LaTeX:-CheckLineBreak(ccnt); ! texlist := texlist, nlist, ll; i := i + 1 ! end do ! end if; ! texlist ! end ): |