在knitr .Rnw文件中使用“反向”赋值运算符( - >)时遇到问题。例如,我有以下简单的.Rnw文件
\documentclass{article}
\begin{document}
<<test>>=
options(tidy=FALSE, width=50)
1:5 -> a
@
\end{document}
当我使用knitr编译成pdf时,运算符 - &gt;已经反转,所以输出实际上已经
1:5 <- a
在里面!
我该如何更改?
答案 0 :(得分:4)
使tidy=FALSE
成为knitr chunk选项而不是R选项:
\documentclass{article}
\begin{document}
<<test,tidy=FALSE>>=
options(tidy=FALSE, width=50)
1:5 -> a
@
\end{document}
(我不认为tidy=FALSE
在options()
中做任何事情,但我认为这是无害的......)
答案 1 :(得分:3)
为了逐块设置tidy=FALSE
,Ben的回答让你了解。
要全局重置选项,请使用opts_chunk$set()
,如下所示:
\documentclass{article}
\begin{document}
<<setup, include=FALSE, cache=FALSE>>=
opts_chunk$set(tidy=FALSE)
@
<<test>>=
1:5 -> a
@
\end{document}
此外,as documented here,tidy.opts
可以让您对 knitr (以及最终formatR::tidy.source()
)的许多方面进行更精细的控制。行为。也许不幸的是,在这种情况下,当你可以告诉 knitr 不要用"="
替换"<-"
时(做opts_chunk$set(tidy.opts=list(replace.assign=FALSE))
你不能使用该选项可控制"->"
是否替换为"<-"
。
以下是使用tidy.opts
\documentclass{article}
\begin{document}
<<setup, include=FALSE, cache=FALSE>>=
opts_chunk$set(tidy.opts=list(replace.assign=FALSE))
@
<<test>>=
j <- function(x) { x<-y ## x<-y will be printed on new line, with added inter-token spaces
a = 1:5 ## will be indented, but "=" won't be replaced
} ## closing brace will be moved to start of line
@
\end{document}