SweaveListingUtils-package {SweaveListingUtils} | R Documentation |
Package SweaveListingUtils provides utilities for defining R / ‘Rd’ as TeX-package-‘listings’ "language" and including R / ‘.Rd’ source file (sniplets) copied from an url, by default from svn server at R-forge in its most recent version, thereby avoiding inconsistencies between vignette and documented source code
Package: | SweaveListingUtils |
Version: | 0.1.1 |
Date: | 2008-11-27 |
Depends: | R(>= 2.0.0), startupmsg |
LazyLoad: | yes |
License: | LGPL-3 |
TeX-package ‘listings’, confer http://www.ctan.org/tex-archive/macros/latex/contrib/listings/, http://www.ctan.org/tex-archive/macros/latex/contrib/listings/listings.pdf offers a very powerful setup for typesetting [program] code in TeX.
For quite some time there has already been a corresponding language definition for R. We enhance this definition and also introduce a corresponding "language" definition file to typeset ‘.Rd’ code (file ‘Rdlistings.sty’ in the ‘TeX’ subfolder of this package, which is according to Duncan Murdoch's ``Parsing Rd Files'' as of Nov. 4 2008.).
In recent versions ‘listings’ also cooperates with TeX package ‘fancyvrb’, so it can be configured to enhance Sweave typesetting.
Just as a first simple example, comments are recognized automatically and hence typeset in particular format.
For pretty printing, or moreover literate programming,
with SweaveListingUtils, assignment operators <-
and
<<-
get typeset by one symbol each.
For a corresponding TeX preamble combining Sweave and ‘listings’,
we provide command SweaveListingPreparations
.
As for the R language definition, we allow for different keywordstyles to typeset symbols from different packages. This is useful to distinguish mark-up for newly defined functions and alread existing ones.
More specifically, whenever in some R code sniplet in some Sweave chunk, there
is some library
or require
command, the corresponding symbols
found by ls()
afterwords in some search()
entry position, are
registered as <comma-separated keywordlist>
(printed as 5 items per line)
as a new "higher order" group of keywords by a corresponding
\lstdefinelanguage{R}% {morekeywords=[<order number>]{ <comma-separated keywordlist> },% sensitive=true,% keywordstyle=[<order number>]<keywordstyle as format string>,% }TeX directive in the automatically generated ‘.tex’ file where
<order number>
is incremented (resp. gets looked up from
the global, non-exported variable .alreadyDefinedPkgs
in the package
name space) at each instance of
a library
or require
command.
To this end commands
library
and
require
are masked. See also
lstsetLanguage
,
changeKeywordstyles
,
and setToBeDefinedPkgs
As for the integration of code sniplets from an url (by default, we use
the svn server at R-forge in its most recent version), this can be
useful to stay consistent with the current version of the code without
having to update vignettes all the time. To this end, besides referencing
by line numbers, lstinputSourceFromRForge
also offers
referencing by matching regular expressions.
lstset lstsetR lstsetRd SweaveListingPreparations readSourceFromRForge copySourceFromRForge lstinputSourceFromRForge readPkgVersion SweaveListingOptions getSweaveListingOption SweaveListingoptions SweaveListingMASK setToBeDefinedPkgs lstsetLanguage changeKeywordstyles library require
taglist print.taglist
An example ‘.Rnw’ file, ‘ExampleSweaveListingUtils.Rnw’, may be found in the ‘doc’ folder of this package.
Peter Ruckdeschel Peter.Ruckdeschel@itwm.fraunhofer.de
Maintainer: Peter Ruckdeschel Peter.Ruckdeschel@itwm.fraunhofer.de