Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'd like to generate an image with math formulas with TeX from command line. Something like:

$ tex-executable "E=\frac{m_1v^2}{2}" e2.png

I have MacTex 2009 installed and I'm pretty sure that something like that already exists in this distribution. If not please suggest me a tool.

share|improve this question

migrated from stackoverflow.com Nov 8 '11 at 2:07

This question came from our site for professional and enthusiast programmers.

    
Welcome to TeX.sx! Your question was migrated here from Stack Overflow. Please register on this site, too, and make sure that both accounts are associated with each other, otherwise you won't be able to comment on or accept answers or edit your question. –  Werner Nov 8 '11 at 2:17
add comment

5 Answers 5

Update: 2012-01:

The standalone class now has a varwidth option, so with the current release, one would simply use the [varwidth] package option:

\ifdefined\formula
\else
    \def\formula{E = m c^2}
\fi
\documentclass[border=2pt,varwidth]{standalone}
\usepackage{standalone}
\usepackage{amsmath}
\begin{document}
\[ \formula \]
\end{document}

Save the following as formula.tex:

\ifdefined\formula
\else
    \def\formula{E = m c^2}
\fi
\documentclass[border=2pt]{standalone}
\usepackage{amsmath}
\usepackage{varwidth}
\begin{document}
\begin{varwidth}{\linewidth}
\[ \formula \]
\end{varwidth}
\end{document}

The standalone class is used for cropping. The varwidth environment is similar to the minipage environment, but sets its width to match the narrower natural width based on the content.

The ifdefined...\fi is only necessary so that this file can be compiled by itself, which is useful to test to ensure that there are no errors in it, in case you decide to make changes to it.

Then you can process this file as:

pdflatex "\def\formula{E=\frac{m_1v^2}{2}}\input{formula.tex}"
convert -density 300 formula.pdf -quality 90 formula.png

where convert is part of ImageMagick. This yields the following PNG file:

enter image description here

I have not used it, but the current development version of standalone can generate the PNG directly if you use

\documentclass[convert={density=300,size=1080x800,outext=.png}]{standalone}

Alternatively you could also use GIMPas per this link from Wikibooks.

share|improve this answer
add comment

If you run into portability issues and require an online version, you could always use the Online LaTeX Equation Editor. It allows for exporting equations (display or inline) in a variety of formats and resolutions:

  • .gif
  • .png
  • .pdf
  • .swf
  • .emf
  • .svg
share|improve this answer
add comment

There are a few tools called tex2png. You should be able to use one of them for this purpose:

share|improve this answer
add comment

As you have explicitly asked for a command-line solution this is basically a non-answer. However, with respect to others looking for a "how to quickly get a PNG out of a LaTeX equation" solution it belongs here:

For Mac OSX there is the LaTeXit LaTeXit tool, which provides quick typesetting, a history (very useful for later edits) and lets you copy the result in various formats (including PNG) into the clipboard.

enter image description here

share|improve this answer
add comment

From the question it appears that the wanted end result would be a PNG raster image.

To that end, Mac OS X command sips (Scriptable Image Processing System) can be of help in converting the XeTeX (or, xdvipdfmx) generated PDF file into a PNG file. sips comes with OS X so you don't need to install anything extra. Because of formatting concerns in this here webpage, I'll use a shell heredoc, but it could be just as well all be on the same line:

xetex <<EOF
\advance\hoffset by-1in % default is one inch away, so remove that
\advance\voffset by-1in % ditto
\setbox0\hbox{$\displaystyle % set into a box so we can measure its dimensions
E={m_lv^2\over2} % <<< your equation here
$}
\special{papersize=\the\wd0,\the\dimexpr\ht0+\dp0} % set the papersize to the box size
\box0 % actually typeset the box
\bye
EOF
sips -s format png texput.pdf --out texput.png

Or as a one-liner, this time outputting a JPG file (you will need to remove the line-breaks manually):

xetex '\advance\hoffset by-1in\advance\voffset by-1in\setbox0
       \hbox{$\displaystyle E={m_1v^2\over2}$}\special{papersize=\the\wd0,
       \the\dimexpr\ht0+\dp0}\box0\bye' && 
       sips -s format jpeg texput.pdf --out texput.jpg

As Peter mentions in a comment, both of the above will crop the resulting PDF file (but not the PNG file), so if you need the PDF file as well, you could change the \voffset reduction to -.99in and add to the papersize height calculation a +.01in.

share|improve this answer
    
In the PDF version I notice that the formula is cut off (Also, you missed the =). –  Peter Grill Feb 7 '12 at 16:58
    
@Peter: Welp, I see no cut off in the png, but thanks for the missing = –  morbusg Feb 7 '12 at 21:02
    
Problem is in the PDF (not png). Also as it is now formatted it is "cut-and-pastable" into a Unix shell. –  Peter Grill Feb 7 '12 at 21:13
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.