Ваш пример работает для меня с:
> sessionInfo()
R version 2.13.1 Patched (2011-07-08 r56332)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] tools stats graphics grDevices utils datasets methods
[8] base
Я получаю:
> Rd2HTML(z, stages = "build")
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>R: abc</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="R.css">
</head><body>
<table width="100%" summary="page for abc"><tr><td>abc</td><td align="right">R Documentation</td></tr></table>
<h2>abc</h2>
<h3>Details</h3>
<p><dl>
<dt>def</dt><dd>ghi</dd></dl>
</p>
</body></html>
Кажется, теперь я понимаю это немного лучше, пройдя некоторые перестановки.
Это
\name{foo}
\alias{foo}
\title{foo bar}
\description{
blah blah blah
}
\details{
\Sexpr[results=rd, stage=render]{"\\\\describe{\\\\item{def}{ghi}}"}
\Sexpr[results=rd, stage=render]{(des <- "\\\\describe{\\\\item{def}{ghi}}")}
\Sexpr[results=rd, stage=render]{tools:::Rd_expr_PR(1234)}
}
работает, например, при обработке через:
R CMD Rd2pdf foo.Rd
Поскольку я писал это прямо в файле, мне пришлось также избежать экранирования \
, в противном случае я получал ошибки при обработке файла Rd.
Я использовал stage=render
, потому что во время этих демонстраций я не собирал пакет (но, как я уже сказал, ваш пример работает на меня).
Это также хорошо работает, когда анализируется и отображается как HTML:
> foo <- parse_Rd("foo.Rd")
> Rd2HTML(foo)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>R: foo bar</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="R.css">
</head><body>
<table width="100%" summary="page for foo"><tr><td>foo</td><td align="right">R Documentation</td></tr></table>
<h2>foo bar</h2>
<h3>Description</h3>
<p>
blah blah blah
</p>
<h3>Details</h3>
<p>
</p>
<p>
<dl>
<dt>def</dt><dd>ghi</dd></dl>
</p>
<p>
<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=1234">PR#1234</a>
</p>
</body></html>
Несколько более длинный пример, показывающий несколько способов его использования с использованием трех вариантов темы:
- Создание векторного символа вручную]
- Создание вектора символов и организация его печати
(....)
- Создает символьный вектор в одном операторе
\Sexpr
, без вывода, но печатает этот вектор с помощью второго оператора \Sexpr
.
Это содержимое файла:
\name{foo}
\alias{foo}
\title{foo bar}
\description{
blah blah blah
}
\details{
\Sexpr[results=rd, stage=render]{"\\\\describe{\\\\item{abc}{ghi}}"}
\Sexpr[results=rd, stage=render]{(des <- "\\\\describe{\\\\item{def}{ghi}}")}
\Sexpr[results=hide, stage=render]{des2 <- "\\\\describe{\\\\item{xyz}{ghi}}"}
\Sexpr[results=rd, stage=render]{des2}
\Sexpr[results=rd, stage=render]{tools:::Rd_expr_PR(1234)}
}
Это делает хорошо, используя R CMD Rd2pdf foo.Rd
.
Похоже, вам нужно дополнительно экранировать любое \
при записи этого в Rd-файл, и если вы пытаетесь это сделать, создавая один файл для анализа и рендеринга, вам нужно stage=render
.