r markdown、knitr 和 latex 符号

r markdown, knitr and latex symbols

经过数小时的无果搜索,我想在这里寻求建议。

我正在尝试在 r markdown 中使用 knitr 生成一些非常简单的 html 表格,但我无法让乳胶符号在列名称中正确显示。

示例代码,有几个不同的符号:

kable(data.frame("$^3$" = "a",
                  "$\epsilon^2$" = "b",
                  "$%$" = "c"),
                  escape = F)

如您所见,列名称未格式化 X..3. X..epsilon.2. X...

如有任何帮助,我们将不胜感激

您可以在 kable 调用中设置 col.names。它在您的 data.frame 调用中不起作用,因为它不允许不以点或字母开头的列名。 你可以在这里看到这个:

my_data <- data.frame("$^3$" = "a",
                      "$\epsilon^2$" = "b",
                      "$%$" = "c")
my_data
  X..3. X..epsilon.2. X...
1     a             b    c

解决方法是:

kable(my_data, escape = F, 
      col.names = c("$^3$", "$\epsilon^2$", "$%$"))

您可能想使用 \varepsilon 而不是 \epsilon,因为这给出了一个更漂亮的 epsilon(在我看来)。

kable(my_data, escape = F, 
      col.names = c("$^3$", "$\varepsilon^2$", "$%$"))

您可以在数据框中使用这些列名,但您需要告诉 data.frame 函数不要使用 check.names = FALSE 来破坏它们。 但是,这不足以修复您的示例,因为 $%$ 不是合法的 LaTeX。 您需要转义百分号,否则它将被视为注释字符。 所以这有效:

my_data <- data.frame("$^3$" = "a",
                      "$\epsilon^2$" = "b",
                      "$\%$" = "c",
                      check.names = FALSE)
kable(my_data)