knitr:小于/大于显示为(¡)和(¿)的符号

时间:2015-06-23 16:08:37

标签: r knitr

我是使用knitr生成报告的初学者。 我有一个R脚本(参见下面的示例; BTW我正在使用RStudio)所有这些都运行没有错误,输出是一个数据帧。我的rnw.file看起来像这样:

% !Rnw weave = knitr

\documentclass[a4paper]{article}

\begin{document}

<<echo=FALSE,message=FALSE>>=
source("test.R")
kable(test.mat)
@

\end{document}

显示表格非常好。我唯一的问题是“&gt;” (大于)在最后一列中签名,显示为“¿”。

发现了一些关于使用

的内容
\usepackage[T1]{fontenc}

但这似乎没有诀窍。包含了这个,我可以开始编译脚本但是在10分钟左右之后(之前我只花了几秒钟来编译)我遇到了一个错误(退出代码:1)。

提前致谢!

R.script(保存为“test.R”):

temp <- 12
test.mat <- as.data.frame(matrix(NA,ncol=2,nrow=1))
test.mat$V1 <- 2
test.mat$V2 <- paste(temp,"subjects > 28 days",sep=" ")

2 个答案:

答案 0 :(得分:0)

>是一个数学符号,因此除非未嵌入数学环境(内联或集团),否则无法识别。 试试这段代码。

$>$

A(不那么优雅)解决方案

kable的行为仍然很奇怪。在我分析了它产生的乳胶代码之后,我尝试了这个解决方案,这不是那么优雅,但它有效。希望其他一些用户能提供更有效的解决方案。这是我的代码。

% !Rnw weave = knitr
\documentclass[a4paper]{article}
\begin{document}
<<echo = F, message = FALSE>>=
source("test.R")
aa1
@
\end{document}

test.R所在的位置:

temp <- 12
test.mat <- as.data.frame(matrix(NA,ncol=2,nrow=1))
test.mat$V1 <- 2
test.mat$V2 <- paste(temp,"subjects > 28 days",sep=" ")
aa <- kable(test.mat, format = "latex")
aa1 <- gsub(">", "$>$", aa)

结果如下: enter image description here

答案 1 :(得分:0)

I can't explain why it is working now, but here is what I found I should use in the preambel:

\usepackage{lmodern}
\usepackage[T1]{fontenc}

Found this in another thread (not really related to my question), but now I get what I want in the R output (no changes required in the R.script) as well as in the pdf.