loadRdMacros {tools} | R Documentation |
Load User-defined Rd Help System Macros
Description
Loads macros from an ‘.Rd’ file, or from several ‘.Rd’ files contained in a package.
Usage
loadRdMacros(file, macros = TRUE)
loadPkgRdMacros(pkgdir, macros = NULL)
Arguments
file |
A file in Rd format containing macro definitions. |
macros |
optionally, a previous set of macro definitions, in the format
expected by the |
pkgdir |
The base directory of a source package or an installed package. |
Details
The Rd files parsed by these functions should contain only macro definitions; a warning will be issued if anything else other than comments or white space is found.
The macros
argument may be a filename of a base set of macros,
or the result of a previous call to loadRdMacros
or
loadPkgRdMacros
in the same session. These results should be
assumed to be valid only within the current session.
The loadPkgRdMacros
function first looks for an "RdMacros"
entry in the package ‘DESCRIPTION’ file. If present, it should
contain a comma-separated list of other package names; their macros
will be loaded before those of the current package. It will then look
in the current package for ‘.Rd’ files in the ‘man/macros’
or ‘help/macros’ subdirectories, and load those.
Value
These functions each return an environment containing objects with the
names of the newly defined macros from the last file processed. The
parent environment will be macros from the previous file, and so on.
The first file processed will have emptyenv()
as its
parent.
Author(s)
Duncan Murdoch
References
See the ‘Writing R Extensions’ manual for the syntax of Rd files, or https://developer.r-project.org/parseRd.pdf for a technical discussion.
See Also
Examples
f <- tempfile()
writeLines(r"(
\newcommand{\Rlogo}{
\if{html}{\figure{Rlogo.svg}{options: width=100 alt="R logo"}}
\if{latex}{\figure{Rlogo.pdf}{options: width=0.5in}}
}
)", f)
m <- loadRdMacros(f)
ls(m)
ls(parent.env(m))
ls(parent.env(parent.env(m)))
parse_Rd(textConnection(r"(\Rlogo)"), fragment = TRUE, macros = m)