changeKeywordstyles {SweaveListingUtils} | R Documentation |
sets up / updates a table of keywordstyles to different packages
changeKeywordstyles(pkgs, keywordstyles)
pkgs |
character; the packages for which keywordstyle information is to be changed |
keywordstyles |
character or missing; the corresponding keywordstyle format
strings; if missing the corresponding option Keywordstyle is read off
by usinggetSweaveListingOption("Keywordstyle") .Internally, it is being cast to the same length as pkgs by
rep(keywordstyles, length.out = length(pkgs)) .
|
Before changing the keywordstyles, we first check whether the corresponding
package is registered at all —by looking up the
(non-exported) vector object .alreadyDefinedPkgs
, which is hidden in the
namespace of this package.
For changing the keywordstyle, we write out a
\lstdefinelanguage{R}% {keywordstyle=[<order number>]<keywordstyle as format string>,% }directive to standard out, where
<keywordstyle as format string>
is a string containing any sequence of TeX formatting commands like
"\\bfseries\\footnotesize"
. Note that backslashes have to be escaped.
and <order number>
is just num+2
where num
is the index of the package in the .alreadyDefinedPkgs
vector.
For use in an .Rnw
file, the call to lstsetlanguage
should be
wrapped into a corresponding Sweave chunk in the form
<< /chunkname/, results=tex, echo=FALSE>>= changeKeywordstyles( ..... ) @for example
<<distrRegisterKeywords, results=tex, echo=FALSE>>= changeKeywordstyles(pkgs = "distr", keywordstyles = "\\bfseries\\color{blue}") @
invisible()
Peter Ruckdeschel Peter.Ruckdeschel@itwm.fraunhofer.de
require(MASS) lstsetLanguage(pkgs = c("MASS","stats"), keywordstyles = paste("\\bfseries\\color{",c("blue","red"),"}", sep="", collapse="")) changeKeywordstyles(pkgs = c("distr","distrEx"), keywordstyles = paste("\\bfseries\\color{",c("green","blue"),"}", collapse="", sep = ""))