Here are a couple new modules that allow to use noweb or Sweave with any
document class. They replace literate-article and friends.

- noweb.module is the plain one.

- sweave.module is the one for use with R. It is not finished yet since
  I only added support for \SweaveOpts and \SExpr macros (both as custom
  insets: should they be CharStyles instead?). It would be nice to add
  support for other macros, bit I am short on time ATM. Another thing
  that would be nice is to support the plain latex format for Sweave,
  but unfortunately it is not regular: the optional argument is enclosed
  by {} instead of [] and LyX cannot produce that.

I think those modules could be added to LyX 1.6.3 as they are, but
having somebody pick them up and improve that first would be nice...

In the longer term (2.0), what I would like to do is to add a
OutputFormat tag to layout files that allow to specify whether we want
"noweb" or "sweave" format. With this, we can preset the converters in
configure.py. And this would also be a very simple way for anyone to set
up a preprocessor for latex files...

JMarc

svndiff lib/

Index: lib/layouts/sweave.module
===================================================================
--- lib/layouts/sweave.module	(revision 0)
+++ lib/layouts/sweave.module	(revision 0)
@@ -0,0 +1,84 @@
+#\DeclareLyXModule[Sweave.sty]{R/Sweave literate programming}
+#DescriptionBegin
+#Allows to use the statistical package R as a literate programming tool.
+#DescriptionEnd
+
+# Suggested style to write your code:
+# Within same chunk, lines are separated by newlines (Ctrl-Return), use:
+#  ItemSep               0.4
+#    . disavantage: must type ctrl-return every single line
+#    . advantage:   looks better (IMHO)
+#                   resembles more closely the produced paper doc (more WYSIWYG)
+#
+
+Format 11
+OutputType              literate
+
+Style Chunk
+	Margin                First_Dynamic
+	LatexType             Paragraph
+	LatexName             dummy
+	NewLine               0
+	LeftMargin            MMM
+	ParSep                0.4
+	TopSep                0.4
+	BottomSep             0.4
+	ItemSep               0.4
+	Align                 Left
+	AlignPossible         Block,Left
+	FreeSpacing           1
+	PassThru              1
+	LabelType             Static
+	LabelFont
+	  Color               magenta
+	EndFont
+	TextFont
+	  Color               latex
+	  Family              Typewriter
+	EndFont
+End
+
+Style Scrap
+	ObsoletedBy           Chunk
+End
+
+
+InsetLayout "Sweave Options"
+	LabelString           "Sweave opts"
+	LatexType             Command
+	LaTexName	      SweaveOpts
+	LyXType		      Custom
+	Decoration            Classic
+	Font
+	  Color               latex
+	  Family              typewriter
+	EndFont
+	LabelFont
+	  Color               latex
+	  Size                Small
+	EndFont
+	MultiPar              false
+	PassThru              true
+	FreeSpacing           true
+	ForceLTR              true
+End
+
+InsetLayout "R expression"
+	LabelString           "R expr"
+	LatexType             Command
+	LaTexName	      Sexpr
+	LyXType		      Custom
+	Decoration            Conglomerate
+	Font
+	  Color               latex
+	  Family              typewriter
+	EndFont
+	LabelFont
+	  Color               latex
+	  Size                Small
+	EndFont
+	MultiPar              false
+	PassThru              true
+	FreeSpacing           true
+	ForceLTR              true
+End
Index: lib/layouts/noweb.module
===================================================================
--- lib/layouts/noweb.module	(revision 0)
+++ lib/layouts/noweb.module	(revision 0)
@@ -0,0 +1,39 @@
+#\DeclareLyXModule[noweb.sty]{Noweb literate programming}
+#DescriptionBegin
+#Allows to use Noweb as a literate programming tool.
+#DescriptionEnd
+
+# Suggested style to write your code:
+# Within same scrap, lines are separated by newlines (Ctrl-Return), use:
+#  ItemSep               0.4
+#    . disavantage: must type ctrl-return every single line
+#    . advantage:   looks better (IMHO)
+#                   resembles more closely the produced paper doc (more WYSIWYG)
+#
+
+Format 11
+OutputType              literate
+
+Style Scrap
+	Margin                First_Dynamic
+	LatexType             Paragraph
+	LatexName             dummy
+	NewLine               0
+	LeftMargin            MMM
+	ParSep                0.4
+	TopSep                0.4
+	BottomSep             0.4
+	ItemSep               0.4
+	Align                 Left
+	AlignPossible         Block,Left
+	FreeSpacing           1
+	PassThru              1
+	LabelType             Static
+	LabelFont
+	  Color               magenta
+	EndFont
+	TextFont
+	  Color               latex
+	  Family              Typewriter
+	EndFont
+End
Index: lib/chkconfig.ltx
===================================================================
--- lib/chkconfig.ltx	(revision 28539)
+++ lib/chkconfig.ltx	(working copy)
@@ -269,6 +269,7 @@
 \TestPackage{slashed}
 \TestPackage{soul}
 \TestPackage{subfig}
+\TestPackage{Sweave}
 \TestPackage{textcomp}
 \TestPackage{ulem}
 \TestPackage{units}

Reply via email to