在表中创建超链接并调整列以包装文本Rmarkdown

时间:2017-07-30 07:42:59

标签: r latex r-markdown kableextra

我正在尝试在表格内创建超链接,并调整列以包装文本并生成pdf。

前表:

variable<-"testing a long column to wrap testing a long column to wrap "
col1<-"\href{https://www.google.co.uk/}{click here}"
col2<-"[click here](https://www.google.co.uk/)"
col3<-"[click here](https://www.google.co.uk/)"
col4<-"[click here](https://www.google.co.uk/)"
col5<-"[click here](https://www.google.co.uk/)"
test<-data.frame(variable,col1,col2,col3,col4,col5)

当我尝试以下操作时,它会正确提供超链接,但不会调整列宽

library(kableExtra)
knitr::kable(test,row.names=FALSE) %>%
  column_spec(1, width = "5cm")

但是当我尝试包含format ='latex'时,超链接不起作用,但列宽和包装文本

library(kableExtra)
knitr::kable(test,format ='latex' ,row.names=FALSE) %>%
  column_spec(1, width = "5cm")

请帮我添加超链接,并在Rmarkdown中调整列宽。

1 个答案:

答案 0 :(得分:0)

kableExtra仅在kable生成原始HTML / PDF代码时有效。这就是为什么当你没有指定格式时,column_spec不起作用。

指定格式后,此问题变为“如何将链接放入kable(latex)”问题。事实上,你已经非常接近答案了。关键是您必须在escape中将F设置为kable,以便它可以保持LaTeX代码不变。此外,你必须双重逃避col1中的反斜杠,因为它是一个“R事件”。

variable<-"testing a long column to wrap testing a long column to wrap "
col1<-"\\href{https://www.google.co.uk/}{click here}"
col2<-"\\href{https://www.google.co.uk/}{click here}"
col3<-"\\href{https://www.google.co.uk/}{click here}"
col4<-"\\href{https://www.google.co.uk/}{click here}"
col5<-"\\href{https://www.google.co.uk/}{click here}"
test<-data.frame(variable,col1,col2,col3,col4,col5)

knitr::kable(test,format ='latex',row.names=FALSE, escape = F) %>%
  column_spec(1, width = "5cm")