<div>I like it. To be honest, I use TeXShop and don&#39;t generally deal with command-line utilities, but that&#39;s okay. There is a manual. :)</div>
<div>&nbsp;</div>
<div>Right now, I&#39;m working on a matrix algebra module, and I&#39;d like to be able to work with rings of polynomials, exponential polynomials and so forth, but it would be nice to display the output to the the user in some comprehensible format. For now, I&#39;m thinking about just displaying unprocessed LaTeX and worrying about typesetting later.<br>
<br></div>
<div class="gmail_quote">On Tue, Dec 2, 2008 at 3:21 PM, Anthony Cowley <span dir="ltr">&lt;<a href="mailto:acowley@seas.upenn.edu">acowley@seas.upenn.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Here&#39;s a version of Mark&#39;s code that does the processing locally. It<br>needs some attention regarding the system calls depending on your<br>
setup, as it calls pdflatex and convert (ImageMagick) as well as<br>creates a couple temporary files.<br><br>;;; Create an image snip object from a latex equation.<br>;;; Technique from<br><a href="http://dererumnatura.us/archives/2008/02/rendering-equat-1.html" target="_blank">http://dererumnatura.us/archives/2008/02/rendering-equat-1.html</a><br>

<div class="Ih2E3d">#lang scheme<br>(require scheme/system)<br>(require scheme/gui/base)<br>(define latex<br></div>&nbsp;(let ((template-head (string-join &nbsp;&#39;(&quot;\\documentclass{article}&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;\\usepackage{amsmath}&quot;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;\\pagestyle{empty}&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;\\begin{document}&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;\\Huge&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;\\[&quot;)<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;~n&quot;))<br>&nbsp; &nbsp; &nbsp; &nbsp;(template-foot (string-join &#39;(&quot;\\]&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;\\end{document}&quot;)<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;~n&quot;)))<br>
&nbsp; &nbsp;(lambda (str)<br>&nbsp; &nbsp; &nbsp;(call-with-output-file &quot;/tmp/latex.tex&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp;(lambda (f) (fprintf f (string-join (list template-head str<br>template-foot) &quot;~n&quot;)))<br>&nbsp; &nbsp; &nbsp; &nbsp;#:mode &#39;text<br>&nbsp; &nbsp; &nbsp; &nbsp;#:exists &#39;replace)<br>
&nbsp; &nbsp; &nbsp;(system &quot;PATH=/sw/bin:$PATH pdflatex -output-directory /tmp<br>latex.tex &gt; /dev/null&quot;)<br>&nbsp; &nbsp; &nbsp;(system &quot;PATH=/sw/bin:$PATH convert /tmp/latex.pdf -trim +repage<br>/tmp/latex.png&quot;)<br>&nbsp; &nbsp; &nbsp;(make-object image-snip% &quot;/tmp/latex.png&quot;))))<br>
<br>;; Example<br>; (latex &quot;\\sum_{i=0}^{\\infty}\\lambda_i&quot;)<br><font color="#888888"><br>Anthony<br></font>
<div>
<div></div>
<div class="Wj3C7c"><br>On Tue, Dec 2, 2008 at 4:32 PM, Mark Engelberg &lt;<a href="mailto:mark.engelberg@gmail.com">mark.engelberg@gmail.com</a>&gt; wrote:<br>&gt; BTW, my code looks like this:<br>&gt; #lang scheme<br>&gt; (require scheme/system)<br>
&gt; (require scheme/gui/base)<br>&gt; (define (latex str)<br>&gt; &nbsp;(let ([escaped-str (regexp-replace* #rx&quot; &quot; str &quot;%20&quot;)])<br>&gt; &nbsp; &nbsp;(system (format &quot;C:\\temp\\curl<br>&gt; \&quot;<a href="http://www.codecogs.com/eq.latex?~a\" target="_blank">http://www.codecogs.com/eq.latex?~a\</a>&quot; -o C:\\temp\\latex.gif&quot;<br>
&gt; escaped-str))<br>&gt; &nbsp; &nbsp;(make-object image-snip% &quot;c:\\temp\\latex.gif&quot;)))<br>&gt;<br>&gt; I keep the curl executable in my temp directory.<br>&gt;<br>&gt; So you can do something like (latex &quot;3 \\geq 2&quot;) and it will produce<br>
&gt; the latex output for that.<br>&gt;<br>&gt; While it&#39;s downloading the latex gif, the repl displays a read input<br>&gt; box. &nbsp;I&#39;m not sure how to suppress that.<br></div></div>
<div>
<div></div>
<div class="Wj3C7c">&gt; _________________________________________________<br>&gt; &nbsp;For list-related administrative tasks:<br>&gt; &nbsp;<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
&gt;<br></div></div></blockquote></div><br>