[TxMt] LaTeX (Sweave)/HTML/Markdown and Rdaemon (R)
Hans-Joerg Bibiko
bibiko at eva.mpg.de
Fri Jul 4 11:37:57 UTC 2008
Hi,
while developing the Rdaemon I had one single question in my mind. How
can you integrate Rdaemon in documents like LaTeX, HTML, Markdown etc.
Up to now I fiddled around with automatically copy&pasting R stuff,
thought about modifying Sweave etc.
But I believe I found hopefully a very easy solution.
One only has to use TextMate's wondrous facilities. ;P
Everybody knows, e.g. if one writes an HTML doc you have the HTML
scope with all commands behind it. Then one inserts a new CSS
declaration. If you are inside of such a CSS tag you have all CSS
features available. This is done in the Language setting for HTML.
This led me to an idea.
E.g. LaTeX:
If I'm writing an article or paper about my analyses of a topic, and I
did this by using R; then I usually explain how I did this with R.
Or if you give a R course and you want to document it, or if you write
a book about R, ...
One can use Sweave to typeset it. Fine.
BUT, my idea was to combine LaTeX and Rdaemon. I wrote a new Language
for LaTeX called "LaTeX Rdaemon". The only thing I did is to insert an
include statement
include = 'source.rd.console'
within the 'verbatim' environment.
OK. How does this work now?
You can start the Rdaemon and close that window. Then you open a LaTeX
file, set the language to "LaTeX Rdaemon".
Now you can write your LaTeX stuff, but if you declare a
\begin{verbatim} block AND within that block a line begins with "> "
then you are talking with the Rdaemon with all features coming from R
and Rdaemon. Press RETURN and the line will be executed and the result
will be written into the TeX document. (Remember the Rdaemon runs
further in the background)
I recorded a very tiny movie to illustrate that.
http://www.bibiko.de/TM_Rdaemon_Latex.mov
And this is only a test without fine-tuning! One can think about to
write some code to automate some things like:
- if a line starts with "> " within a tex document this line and the
output will wrapped automatically by a verbatim block after pressing
RETURN
- if one plots something and the Rdaemon recognizes that the command
is coming from a tex document which is saved in a certain folder then
the Rdaemon will plot this image using a Quartz device, dev.copy2eps(/
TEX_FOLDER/THE_NAME) [the Quartz is still open for further stuff!],
and return something like:
\begin{figure}
\begin{center}
\includegraphics{THE_NAME}
\end{center}
\caption{Scatter Plot with Regression Line}
\label{fig:FOO}
\end{figure}
[FOO could be calcualted, I guess]
etc...
By using this approach one could do this also with Markdown or HTML
etc. The only thing is to expand the Language syntax, and to fine-tune
the Rdaemon.
Are there any comments about my approach? What kind of side-effects
could be expected?
Would this be useful at all?
Kind regards,
--Hans
More information about the textmate
mailing list