What is the function for "%latex" on a notebook cell ?

 0 In a notebook cell one can write: %latex Hello \ [ x=f(x) \ ] and an image appear with perfect math notation. (not jsmath) What is the sage command that does the same receiving a string ? Something like latexrender(r"Hello \ [x=f(x)\ ]") asked Jan 11 '11 Pedro Cruz 115 ● 1 ● 6 ● 15 http://www.mat.ua.pt/jped...

 5 In the notebook, I believe that executing a %latex cell is equivalent to the command Latex().eval("string", globals=globals)  For example, Latex().eval(r"""Hello $x=f(x)$ Goodbye""", globals=globals)  posted Jan 11 '11 John Palmieri 2700 ● 9 ● 23 ● 60 http://www.math.washingto... You win. :^) DSM (Jan 11 '11) Well, not quite - because he needed a *raw* string, and because Latex() is not in the default namespace. But that's enough for me to open a ticket - see http://trac.sagemath.org/sage_trac/ticket/10592kcrisman (Jan 11 '11) Latex() is in the default name space for the notebook. You can also replace "Latex()" with "latex" (note the lack of parentheses in the second one). I also don't understand your comment about the raw string. Running "latex.eval(...)" from the command line seems to produce png files containing the image, rather than popping up a window with a picture. John Palmieri (Jan 11 '11) Okay, that is good to know. The issue about the raw string is just that in the command line one would have to be careful to add white space for LaTeX, and/or carriage returns, which I don't know quite how to do without actual carriage returns - does \n or \r work? Yes, producing the png makes sense - what does latex.show(...) do? Pop it up? That behavior should be available, at any rate. kcrisman (Jan 11 '11)
 1 I don't know that there is one. But from the console, you can use the text command, and wrap the latex in $: text("Behold the power of TeX:$\\frac{x^2}{y^3} = 7$", (0, 0), axes=False,fontsize=20)  So you can trivially write a latexrender command yourself: def latexrender(s): pic = text("$" + s.replace('$','\$') + "$",(0,0),axes=False, color='black',fontsize=20) pic.show() latexrender(r"17 + \sum_{i=2}^{q} \, k^2 = 29383")  Adding extra features like allowing you to specify the properties via **kwargs is left as an exercise for the reader. I should note though that the above uses matplotlib's TeX implementation, not any system verson, AFAIK. Let's see if I can figure out how to do this from the notebook.. okay, the above still works there. I'll see if I can figure out how to get LaTeX itself called (although I should say that the matplotlib mathtext has worked pretty well for me). After a little thought, something like the following should get the job done: import matplotlib matplotlib.rcParams['text.usetex']=True def latexrender(s): pic = text("$" + s.replace('$','\$') + "$",(0,0),axes=False, color='black',fontsize=20) pic.show() latexrender(r"17 + \displaystyle\sum\limits_{i=2}^q \, k^2 = 29383")  posted Jan 11 '11 DSM 4802 ● 12 ● 61 ● 103  1 Percent directives in the notebook literally call other systems directly. (So you need$\LaTeX$in your PATH to do this, of course, which I don't.) So there should be a way to use the stuff in sage.misc.latex to do this. In theory, sage: show(latex('mystring'))  should work for anything. Certainly it will work if you put Sage objects and numbers in it, but with strings I think it's tricky - latex() wraps them with \texttt{} in general, while %latex wraps LATEX_HEADER around things - see sage: sage.misc.latex.Latex??  or the whole source for sage.misc.latex. So that's not a full answer, but maybe it will lead to a full answer. I just don't understand well enough how the notebook calls other systems, otherwise I'd look there and give a complete answer. posted Jan 11 '11 kcrisman 6784 ● 14 ● 67 ● 152  0 If you just want to typeset some latex using jsmath, use for example: html('$\pi\$')  posted Jan 17 '12 pang 167 ● 3 ● 10 http://www.uam.es/persona...

[hide preview]