knitr:less/greater 比符号显示为 (¡) 和 (¿)

knitr: less/greater than sign displayed as (¡) and (¿)

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

% !Rnw weave = knitr

\documentclass[a4paper]{article}

\begin{document}

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

\end{document}

很好地显示了 table。我遇到的唯一问题是最后一列中显示为“¿”的“>”(大于)符号。

找到了一些关于使用

的信息
\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=" ")

> 是一个数学符号,因此它不会被识别,除非它没有嵌入数学环境(内联或作为一个集团)。 试试这个代码。

$>$

一个(不太优雅)的解决方案

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)

结果如下:

我无法解释为什么它现在可以工作,但这是我发现我应该在序言中使用的内容:

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

在另一个 thread 中找到这个(与我的问题没有真正相关),但现在我在 R 输出中得到了我想要的(R.script 中不需要更改)以及pdf.