emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Named latex blocks for inline execution?


From: Phil Regier
Subject: [O] Named latex blocks for inline execution?
Date: Fri, 14 Mar 2014 10:25:57 -0500 (CDT)

Hi, all; sorry to pester again, but I haven't been able to find a way to do 
something I would have thought would be relatively simple.

What I want to do is declare a named latex block in Org which I can use to 
reproduce markup patterns which I reuse very frequently; the usual reasons 
include readability, brevity, and maintainability.

The reasons I don't want to use Latex macros for this include:
1.  Inflexibility of macro names in Latex (no digits or special characters 
allowed)
2.  Unavailability of short macro names (most of the good ones are taken, so my 
schemes end up inconsistent or self-defeatingly long or I get subtle mysterious 
errors from overriding short macro names)
3.  By mixing Org calls with Latex macros I can debug problems at multiple 
levels (by examining my Org source and generated Latex source separately, which 
is messier with Latex macros alone)
4.  I can shield my advisor from my worst coding habits if he wants to read my 
Latex source
5.  I can pass parameters/variables between Org blocks, performing computations 
on them when needed, more readily than Latex macros (and I would dearly love to 
follow real examples of numerical algorithm execution inline with the 
discussion of said algorithms), perhaps even marking Octave results up as Latex 
invisibly if I'm lucky.

So I thought I would begin with a simple block to create a small inline 
bracketed matrix:

#+name: Smx
#+begin_src latex :var Contents="\\\\pi"
\(
  \left[
    \begin{smallmatrix}
      Contents
    \end{smallmatrix}
  \right]
\)
#+end_src

What I get in a Latex export buffer from "call_Smx()" invariably is some 
variant of the following:

=$\backslash$(
\left[
\begin{smallmatrix}
  \Pi
\end{smallmatrix}
  \right]
$\backslash$)=

There are several particularly stubborn issues here:

1.  The surrounding '=' symbols have been impossible to eliminate.  I assume 
they are part of an attempt to add code markdown, but Latex does not interpret 
them as such; they just get passed through.
2.  The \( and \) directives get literalized no matter what I try.  Wrapping 
the call in math mode delimiters hasn't been terribly fruitful either, as this 
seems to confuse the export (either inline math mode never gets entered, or the 
call_Smx() becomes literal text within math mode).
3.  For some reason, my "\pi" gets capitalized in the Latex output.

I'm not sure exactly what I expect from any particular syntax, but what I want 
is just an interpretable stamp of the Latex code inside the original block with 
variables substituted exactly.  I've tried extra backslashes in the code, tried 
a variety of [:results ...] and [:exports ...] before and after the call (as 
well as prologues and epilogues), exporting to raw and latex and org, and even 
declaring the block as org instead of latex.  Is there a correct way to achieve 
this, or am I trying to make Org do something it is not meant to do?

Thanks for any ideas...

Phil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]