mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-24 21:55:29 +00:00
New literate programming modules.
These modules allow to use Sweave or Noweb with any LyX textclass. They will eventually allow to get rid of literate-* classes. The sweave modules will benefit in trunk from a forthcoming patch which allows to select the output format for a literate OutputType. This will allow to support Sweave out-of-the-box. For branch, this pair of modules is IMO a candidate for LyX 1.6.4 (no need to hurry). Thanks to Gregor Gorjanc for his work on this subject. There is undoubtlessly some additional work that has to be done here. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29657 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
70696182dd
commit
6d08a75d62
@ -1070,6 +1070,7 @@ dist_layouts_DATA =\
|
||||
layouts/mwart.layout \
|
||||
layouts/mwbk.layout \
|
||||
layouts/mwrep.layout \
|
||||
layouts/noweb.module \
|
||||
layouts/numarticle.inc \
|
||||
layouts/numreport.inc \
|
||||
layouts/numrevtex.inc \
|
||||
@ -1111,6 +1112,7 @@ dist_layouts_DATA =\
|
||||
layouts/svjog.layout \
|
||||
layouts/svjour.inc \
|
||||
layouts/svprobth.layout \
|
||||
layouts/sweave.module \
|
||||
layouts/tarticle.layout \
|
||||
layouts/tbook.layout \
|
||||
layouts/theorems-ams-extended.module \
|
||||
|
@ -349,6 +349,7 @@ def checkFormatEntries(dtl_tools):
|
||||
\Format dot dot "Graphviz Dot" "" "" "%%" "vector"
|
||||
\Format platex tex "LaTeX (pLaTeX)" "" "" "%%" "document"
|
||||
\Format literate nw NoWeb N "" "%%" "document"
|
||||
\Format sweave Rnw "Sweave" S "" "%%" "document"
|
||||
\Format lilypond ly "LilyPond music" "" "" "%%" "vector"
|
||||
\Format latex tex "LaTeX (plain)" L "" "%%" "document"
|
||||
\Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "document"
|
||||
@ -447,6 +448,10 @@ def checkConverterEntries():
|
||||
checkProg('a Noweb -> LaTeX converter', ['noweave -delay -index $$i > $$o'],
|
||||
rc_entry = [r'''\converter literate latex "%%" ""
|
||||
\converter literate pdflatex "%%" ""'''])
|
||||
#
|
||||
checkProg('a Sweave -> LaTeX converter', ['R CMD Sweave $$i'],
|
||||
rc_entry = [r'''\converter sweave latex "%%" ""
|
||||
\converter sweave pdflatex "%%" ""'''])
|
||||
#
|
||||
path, elyx = checkProg('eLyXer converter', ['elyxer.py $$i $$o'],
|
||||
rc_entry = [ r'\converter lyx html2 "%%" ""' ] )
|
||||
|
40
lib/layouts/noweb.module
Normal file
40
lib/layouts/noweb.module
Normal file
@ -0,0 +1,40 @@
|
||||
#\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
|
||||
|
||||
# FIXME: Use the Chunk layout from the sweave module?
|
||||
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
|
100
lib/layouts/sweave.module
Normal file
100
lib/layouts/sweave.module
Normal file
@ -0,0 +1,100 @@
|
||||
#\DeclareLyXModule[Sweave.sty]{Sweave - S/R literate programming}
|
||||
#DescriptionBegin
|
||||
#Allows to use the statistical language S/R as a literate programming tool - Sweave.
|
||||
#DescriptionEnd
|
||||
|
||||
# Within the chunk, lines are separated by newlines (Ctrl-Return)!
|
||||
|
||||
# To add :
|
||||
# - \setkeys{Gin}{width=0.8\textwidth} How to add such a "beast"? This is used to define
|
||||
# the size of produced plots.
|
||||
|
||||
Format 11
|
||||
OutputType literate
|
||||
#OutputFormat sweave
|
||||
|
||||
Style Chunk
|
||||
Category Sweave
|
||||
LatexType Paragraph
|
||||
LatexName dummy
|
||||
Margin static
|
||||
ParSep 0.4
|
||||
TopSep 0.4
|
||||
BottomSep 0.4
|
||||
ItemSep 0.4
|
||||
Align Left
|
||||
AlignPossible Block, Left, Right, Center
|
||||
NewLine 0
|
||||
FreeSpacing 1
|
||||
PassThru 1
|
||||
## What is LabelType used for?
|
||||
LabelType Static
|
||||
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 "S/R expression"
|
||||
LabelString "S/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
|
||||
|
||||
InsetLayout "Sweave Input File"
|
||||
LabelString "Sweave Input File"
|
||||
LatexType Command
|
||||
LaTexName SweaveInput
|
||||
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
|
Loading…
Reference in New Issue
Block a user