Hi Jorge, thanks for your suggestion. The reason that made me try :wrap EQUATION instead of :wrap LaTeX is that the former still produces an output even with other back-ends, while the latter only produces an output with LaTeX and nothing with other back-ends. If org-mode does not recognize math environments and always surrounds sub- and superscripts with $ signs with no way to stop this, then it essentially stops people from using numbered equations and still preserving the capability to export in multiple formats. Org-mode is great, but I find that this sounds as problematic for people writing texts including a lot of mathematical expressions. I guess I will have to dig into filters. Regards, Fede On Fri, Jun 6, 2014 at 4:10 PM, Jorge A. Alfaro-Murillo < jorge.a.alfaro@gmail.com> wrote: > > Federico Beffa writes: > > > Hi, > > > > I would like to have a mathematical equation typeset in latex and > > automatically generated by sympy, embedded in an equation environment: > > > > #+NAME: mass-energy > > #+BEGIN_SRC python :results raw :exports results :wrap EQUATION > > import sympy as sp > > E, m, c = sp.symbols('E, m, c', real=True, positive=True) > > E = m*c**2 > > return sp.latex(E) > > #+END_SRC > > > > #+NAME: eq:1 > > #+RESULTS: mass-energy > > #+BEGIN_EQUATION > > c^{2} m > > #+END_EQUATION > > > > The problem I'm facing is that despite the fact that the equation is > > already in a mathematical mode latex environment, it still gets sub- > > and superscripts surrounded by a $ sign. Here is the generated latex > > snippet: > > > > \begin{equation} > > \label{eq:1} > > c$^{\text{2}}$ m > > \end{equation} > > > > Is there a way to teach org-mode not to insert $ signs in equation > > environments? > > > > Thanks, > > Fede > > Hi Federico, > > I don't think that Org has a way to know that you want everything inside > #+BEGIN_EQUATION and #+END_EQUATION to be an equation in LaTeX, if > instead of EQUATION you write CENTER it does a \begin{center} > \end{center}. So by default it tries to produce text. > > I would change your code to: > > #+NAME: mass-energy > #+BEGIN_SRC python :results raw :exports results :wrap LaTeX > import sympy as sp > E, m, c = sp.symbols('E, m, c', real=True, positive=True) > E = m*c**2 > return "\\begin{equation}\n" + str(sp.latex(E)) + "\n\\end{equation}\n" > #+END_SRC > > which produces: > > #+RESULTS: mass-energy > #+BEGIN_LaTeX > \begin{equation} > c^{2} m > \end{equation} > #+END_LaTeX > > and gets exported to LaTeX as an equation. > > In fact if you use it often, you could make a function in python: > > #+NAME: mass-energy > #+BEGIN_SRC python :results raw :exports results :wrap LaTeX > import sympy as sp > def org_equation(the_equation): > return "\\begin{equation}\n" + str(sp.latex(the_equation)) + > "\n\\end{equation}\n" > > E, m, c = sp.symbols('E, m, c', real=True, positive=True) > E = m*c**2 > return org_equation(E) > #+END_SRC > > Best, > > Jorge. > > >