如何在不丢失包装的情况下更改 knitr 输出块中警告和错误消息的颜色?
How do I change color of warning and error messages in knitr output chunk without losing wrapping?
我希望输出块中打印的警告和错误分别为黑色而不是紫红色和红色。我试图按照这里的对话 github.com/yihui/knitr/issues/264 来解决这个问题。这是我到目前为止的一个简短示例(第一块)。
\documentclass{article}
\begin{document}
<<echo=FALSE>>=
color_block = function(color) {
function(x, options) sprintf('{\color{%s}\begin{verbatim}%s\end{verbatim}}',color, x)
}
knit_hooks$set(warning=color_block('black'),error=color_block('black'))
@
<<>>=
lens <- c(10,20,30,40)
lens + c(100,200,300)
@
\end{document}
我已成功将消息的颜色更改为黑色,但消息现在不会换行以保持在输出块边界内,并且消息前后有额外的空格(请参阅第二个块的结果)。
据此 ,我认为 \raggedright
可能会有所帮助,但我对这段代码的理解不够透彻,无法对其进行适当修改。
如有任何帮助,我们将不胜感激。提前谢谢你。
p.s.,这是我的 unanswered question on the knitr Google Group from a few days ago.
的副本
是的,有。在 .rnw 文件的序言中使用以下代码。
\ifdefined\knitrout
\renewenvironment{knitrout}
{\definecolor{warningcolor}{rgb}{0, 0, 0} \definecolor{errorcolor}{rgb}{0, 0, 0}}
{ }
\else
\fi
我希望输出块中打印的警告和错误分别为黑色而不是紫红色和红色。我试图按照这里的对话 github.com/yihui/knitr/issues/264 来解决这个问题。这是我到目前为止的一个简短示例(第一块)。
\documentclass{article}
\begin{document}
<<echo=FALSE>>=
color_block = function(color) {
function(x, options) sprintf('{\color{%s}\begin{verbatim}%s\end{verbatim}}',color, x)
}
knit_hooks$set(warning=color_block('black'),error=color_block('black'))
@
<<>>=
lens <- c(10,20,30,40)
lens + c(100,200,300)
@
\end{document}
我已成功将消息的颜色更改为黑色,但消息现在不会换行以保持在输出块边界内,并且消息前后有额外的空格(请参阅第二个块的结果)。
据此 \raggedright
可能会有所帮助,但我对这段代码的理解不够透彻,无法对其进行适当修改。
如有任何帮助,我们将不胜感激。提前谢谢你。
p.s.,这是我的 unanswered question on the knitr Google Group from a few days ago.
的副本是的,有。在 .rnw 文件的序言中使用以下代码。
\ifdefined\knitrout
\renewenvironment{knitrout}
{\definecolor{warningcolor}{rgb}{0, 0, 0} \definecolor{errorcolor}{rgb}{0, 0, 0}}
{ }
\else
\fi