On Tue, Mar 3, 2009 at 3:23 AM, Rainer M Krug <r.m.k...@gmail.com> wrote:
> On Mon, Mar 2, 2009 at 10:30 PM, Paul Johnson <pauljoh...@gmail.com> wrote:
>> Hello, I don't have any answers, but I have some questions for you.. I
>> have an interest because I have been using LyX with Sweave a long
>> time, but have not yet needed a beamer Sweave.
>
> I wanted to use it for lectures, where it would be very nice to have
> the code and the result.
>
>

Wow, this is frustrating.  I've hammered on this all night and I've
only succeeded in re-producing the problem as you originally stated
it.

I believe I've gotten down the base of the problem by repeatedly
exporting documents to noweb format and then running them through R.
Recall the transformation from LyX first creates a noweb file *.Rnw
and then it runs "R CMD Sweave whatever.Rnw" to create the tex file,
which is then processed through latex. It is possible to monitor each
step and see where it goes wrong.

Using ERT in the lyx document can generate a working document. From
the attached example "beamerERTSweave.lyx", you should be able to
compile the document even if echo=T.  Processing that into Rnw and
then tex, the working LaTeX is like this:

\begin{frame}[containsverbatim]
\frametitle{Here's a title}

\begin{Schunk}
\begin{Sinput}
> plot(gl(5, 20))
\end{Sinput}
\end{Schunk}
\includegraphics{beamerERTSweave-001}

LaTeX can process that.

All we need to do is create a new Frame environment based on
beamer.layout that will add the right code.   I tried to take the
BeginPlainFrame environment and revise it to create
BeginVerbatimEnvironment.  Like you, I thought this should be a simple
change.

But it fails.  A file you can test is "beamertest-1.lyx".

I'm attaching the layout files I was using.

Maybe somebody who writes lots of layout files will take mercy and
tell us how we can modify a frame environment from beamer.layout so
that it creates the proper preamble to create the tex we need.  If we
start with this, which changes are needed?



Style BeginPlainFrame
  Category          Frames
  TocLevel          4
  KeepEmpty         1
  LatexType         Command
  LatexName         lyxframeend{}\lyxplainframe
  Margin            First_Dynamic
  NextNoIndent      1
  ParSkip           0
  TopSep            2.5
  BottomSep         0.5
  ParSep            0
  Align             Center
  LabelType         Static
  LabelBottomSep    0
  LeftMargin        M
  LabelSep          xx
  LabelString       "Frame (no head/foot/sidebars)"

  Font
    Series          Bold
    Size            Largest
    Color           Blue
  EndFont

  LabelFont
    Family          Roman
    Color           latex
  EndFont

  Preamble
    \makeatletter
    \long\def\lyxplainframe#...@lyxplainframe#1\@lyxframestop}%
    \d...@lyxplainframe{\@ifnextchar<{\@@lyxplainframe}{\@@lyxplainframe<*>}}%
    \long\def\@@lyxplainframe<#1>#...@lyxframestop#3\lyxframeend{%
      \frame<#1>[plain]{\frametitle{#2}#3}}
    \makeatother
  EndPreamble
End


I tried to change "lyxplainframe" to "lyxverbatimframe" everywhere and
then simply replace [plain] with [containsverbatim] but it didn't get
the job done.

Oh, well.

I'm wondering if this will be useful in the end because it appears to
me that the R output does not want to fit itself very nicely onto the
tight pages of the beamer layout.  But, then again, we might find
enthusiasm to fix margins if we could make documents compile when they
have Schunk in them.

-- 
Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas

Attachment: beamertest-1.lyx
Description: application/lyx

Attachment: beamerERTSweave.lyx
Description: application/lyx

Attachment: pjbeamer.layout
Description: Binary data

Attachment: literate-beamer.layout
Description: Binary data

Reply via email to