【问题标题】:knitr 1.4.1 ending comments in chunk do not display correctlyknitr 1.4.1 块中的结尾注释无法正确显示
【发布时间】:2013-08-31 12:14:43
【问题描述】:

我正在使用 knitr 1.4.1 并观察到当块(.Rnw 文件)的最后一行是注释时,此注释不会显示为以前的 cmets。

她是一个最小的例子:

\documentclass[a4paper]{article}
\begin{document}

<<chunk, echo=TRUE>>=
## comment before output
x <- sum(1:10) ## sum number from 1 to 10
x
(x <- sum(1:10)) ## sum number from 1 to 10
## comment after output
x
## final comment 
@

\end{document}

在 knitr 1.4.1 中,除最后一个之外的所有 cmets 都以斜体显示。从下面我编织上述块时生成的 LaTeX 代码可以看出,最后一条评论缺少 \hlcom{}

\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlcom{## comment before output}
\hlstd{x} \hlkwb{<-} \hlkwd{sum}\hlstd{(}\hlnum{1}\hlopt{:}\hlnum{10}\hlstd{)}  \hlcom{## sum number from 1 to 10}
\hlstd{x}
\end{alltt}
\begin{verbatim}
## [1] 55
\end{verbatim}
\begin{alltt}
\hlstd{(x} \hlkwb{<-} \hlkwd{sum}\hlstd{(}\hlnum{1}\hlopt{:}\hlnum{10}\hlstd{))}  \hlcom{## sum number from 1 to 10}
\end{alltt}
\begin{verbatim}
## [1] 55
\end{verbatim}
\begin{alltt}
\hlcom{## comment after output}
\hlstd{x}
\end{alltt}
\begin{verbatim}
## [1] 55
\end{verbatim}
\begin{alltt}
## final comment
\end{alltt}
\end{kframe}
\end{knitrout}

欢迎任何关于我如何使最后一条评论看起来像其他评论的提示。

【问题讨论】:

  • 你用什么命令来转换它?我无法通过在您的示例中调用 knit() 然后使用 pdflatex 转换为 pdf 来重现此问题。
  • 也可能是您的 PDF 查看器搞砸了。尝试其他 PDF 查看器。
  • 从生成的 LaTeX 代码中可以看出(我已经通过插入它来编辑问题),这不是 PDF 问题。最后一条评论缺少产生评论效果的 \hlcom{}。
  • @Marius 显示的代码在文件 example.Rnw 中并使用 knit("example.Rnw")。我不确定这个问题是否发生在旧版本上,但我在升级到 1.4.1 后就观察到了这个问题。你用的是同一个版本的 knitr 吗?

标签: r knitr


【解决方案1】:

这原来是 highr 包中的错误,这是由于 R 3.0.1 中的 utils::getParseData() 错误。无论如何,我在开发版中有fixed it,现在你可以从 RForge 安装。

install.packages('highr', repos='http://www.rforge.net/', type='source')

这将在未来作为更高版本的 v0.3 进入 CRAN。

【讨论】:

    猜你喜欢
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多