Great. Just one other related comment.  I think I would likely use the tikz(..., append=TRUE) style but some might prefer to use sink.  That could be done if it were possible to write the output to stdout like this.   If its not a problem you might want to add that too.<br>

<br>sink(&quot;myfile.tex&quot;)<br>cat(&quot;\\documentclass{article}<br>\\usepackage{tikz}<br>\begin{document}<br>\\begin{figure}[ht]<br>\\centering<br>&quot;)<br># &quot;&quot; or &quot;stdout&quot; or default writes to stdout<br>

tikz(width=5, height=5)<br>x &lt;- rnorm(100)<br>plot(x)<br>dev.off()<br>cat(&quot;\\caption{caption}<br>\\label{fig:inline}<br>\\end{figure}<br>\\end{document}<br>&quot;)<br>sink()<br><br><br><br><div class="gmail_quote">

On Sun, Dec 6, 2009 at 3:04 PM, Cameron Bracken <span dir="ltr">&lt;<a href="mailto:cameron.bracken@gmail.com">cameron.bracken@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I liked this idea so much that I implemented it right away. You can<br>
get it from the master branch of my github fork until the next release<br>
<br>
<a href="http://github.com/cameronbracken/rtikzdevice/network" target="_blank">http://github.com/cameronbracken/rtikzdevice/network</a><br>
<br>
Instead of &quot;append&quot; i called it &quot;console.&quot;  It works nearly as you envisioned:<br>
<div class="im"><br>
cat(&quot;\\documentclass{article}<br>
\\usepackage{tikz}<br>
<br>
\\begin{document}<br>
\\begin{figure}[ht]<br>
\\centering<br>
&quot;, file = &quot;myfile.tex&quot;)<br>
<br>
</div>sink(&quot;myfile.tex&quot;,append=T)<br>
tikz(console=T, width=5, height=5)<br>
<div class="im"><br>
x &lt;- rnorm(100)<br>
plot(x)<br>
</div>quiet &lt;- dev.off()<br>
sink()<br>
<div class="im"><br>
cat(&quot;\\caption{caption}<br>
<br>
\\label{fig:inline}<br>
\\end{figure}<br>
\\end{document}<br>
&quot;, file = &quot;myfile.tex&quot;, append = TRUE)<br>
<br>
</div>The following will now produce a self contained tex file:<br>
<div class="im"><br>
\documentclass{article}<br>
\usepackage{tikz}<br>
\usepackage[nogin]{Sweave}<br>
\begin{document}<br>
\begin{figure}[ht]<br>
\centering<br>
&lt;&lt;inline,echo=F,results=tex&gt;&gt;=<br>
<br>
  require(tikzDevice)<br>
</div>  tikz(console=T,width=5,height=5)<br>
<div class="im">    x &lt;- rnorm(100)<br>
    plot(x)<br>
</div>  dummy &lt;- dev.off()<br>
<div class="im"><br>
@<br>
\caption{caption}<br>
\label{fig:inline}<br>
\end{figure}<br>
\end{document}<br>
<br>
<br>
-Cameron<br>
<br>
<br>
</div>On Sun, Dec 6, 2009 at 9:46 AM, Gabor Grothendieck<br>
<div><div></div><div class="h5">&lt;<a href="mailto:ggrothendieck@gmail.com">ggrothendieck@gmail.com</a>&gt; wrote:<br>
&gt; If you able to provide this feature (i.e. incorporate the tikz tex directly<br>
&gt; into the current file rather than writing out a temporary file and reading<br>
&gt; it back in) then that would be useful since one of the key potential<br>
&gt; advantages of tikz and pgf are the ability to have a single file rather than<br>
&gt; multiple files.  Perhaps an append=TRUE argument like this:<br>
&gt;<br>
&gt; cat(&quot;\\documentclass{article}<br>
&gt; \\usepackage{tikz}<br>
&gt; \begin{document}<br>
&gt; \\begin{figure}[ht]<br>
&gt; \\centering<br>
&gt; &quot;, file = &quot;myfile.tex&quot;)<br>
&gt; tikz(&quot;myfile.tex&quot;, width=5, height=5, append = TRUE)<br>
&gt; x &lt;- rnorm(100)<br>
&gt; plot(x)<br>
&gt; dev.off()<br>
&gt; cat(&quot;\\caption{caption}<br>
&gt; \\label{fig:inline}<br>
&gt; \\end{figure}<br>
&gt; \\end{document}<br>
&gt; &quot;, file = &quot;myfile.tex&quot;, append = TRUE)<br>
&gt;<br>
&gt; On Sun, Dec 6, 2009 at 11:34 AM, Cameron Bracken &lt;<a href="mailto:cameron.bracken@gmail.com">cameron.bracken@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Interesting Idea.  This should work with plain Sweave.  It is not very<br>
&gt;&gt; efficient and would be very slow for large files since it must write<br>
&gt;&gt; out then read in then write out.<br>
&gt;&gt;<br>
&gt;&gt; \documentclass{article}<br>
&gt;&gt; \usepackage{tikz}<br>
&gt;&gt; \usepackage[nogin]{Sweave}<br>
&gt;&gt; \begin{document}<br>
&gt;&gt; \begin{figure}[ht]<br>
&gt;&gt; \centering<br>
&gt;&gt; &lt;&lt;inline,echo=F,results=tex&gt;&gt;=<br>
&gt;&gt;<br>
&gt;&gt;  require(tikzDevice)<br>
&gt;&gt;  tf &lt;- tempfile()<br>
&gt;&gt;  tikz(tf,width=5,height=5)<br>
&gt;&gt;    x &lt;- rnorm(100)<br>
&gt;&gt;    plot(x)<br>
&gt;&gt;  #Suppress &quot;null device 1&quot; from being printed<br>
&gt;&gt;  dummy &lt;- dev.off()<br>
&gt;&gt;  cat(readLines(tf),sep=&#39;\n&#39;)<br>
&gt;&gt;<br>
&gt;&gt; @<br>
&gt;&gt; \caption{caption}<br>
&gt;&gt; \label{fig:inline}<br>
&gt;&gt; \end{figure}<br>
&gt;&gt; \end{document}<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; -Cameron<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Sun, Dec 6, 2009 at 9:02 AM, Gabor Grothendieck<br>
&gt;&gt; &lt;<a href="mailto:ggrothendieck@gmail.com">ggrothendieck@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; I would like to create a single file that has my latex and tikzDevice<br>
&gt;&gt; &gt; output<br>
&gt;&gt; &gt; as opposed to outputting the tikZ output into a separate file and using<br>
&gt;&gt; &gt; \input .  The latex would be generated using cat statements in R.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Can that be done?  If so, can you provide a small example.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>