使用pandoc.table()减少表的单元格宽度和字体大小

时间:2013-05-07 16:55:35

标签: r markdown knitr pandoc pander

我正在使用knitrpander在markdown文件中创建表格。我正在使用R中的Pandoc将降价文件转换为PDF。

此代码:

library(knitr)

```{r myTable, echo=FALSE, message=FALSE, results='asis', comment=""}

library(pander)
pandoc.table(head(iris))

``` 

然后在R:

中运行此函数
knitsPDF <- function(name) {
  knit(paste0(name, ".Rmd"), encoding = "utf-8")
  callformat <-"pandoc -V geometry:margin=1in  %s.md -o %s.pdf"
  system(sprintf(callformat, name, name))
}

knitsPDF(name) # insert file name of .Rmd file

在PDF文件中生成此表:

enter image description here

我该如何1.减少表格中列的宽度? 2.减小表的字体大小?

2 个答案:

答案 0 :(得分:23)

如果您不希望根据表格的宽度将表格拆分为多个部分,则可以直接在split.tables参数中pandoc.table或更多地table.split.table panderOptions中指定该表格。 1}}。 E.g:

> pandoc.table(head(iris), split.table = Inf)

-------------------------------------------------------------------
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5.1            3.5           1.4            0.2       setosa  

     4.9             3            1.4            0.2       setosa  

     4.7            3.2           1.3            0.2       setosa  

     4.6            3.1           1.5            0.2       setosa  

      5             3.6           1.4            0.2       setosa  

     5.4            3.9           1.7            0.4       setosa  
-------------------------------------------------------------------

> panderOptions('table.split.table', 300)
> pander(head(iris))

-------------------------------------------------------------------
 Sepal.Length   Sepal.Width   Petal.Length   Petal.Width   Species 
-------------- ------------- -------------- ------------- ---------
     5.1            3.5           1.4            0.2       setosa  

     4.9             3            1.4            0.2       setosa  

     4.7            3.2           1.3            0.2       setosa  

     4.6            3.1           1.5            0.2       setosa  

      5             3.6           1.4            0.2       setosa  

     5.4            3.9           1.7            0.4       setosa  
-------------------------------------------------------------------

关于fontsize:Pandoc的标记没有任何特殊语法,因此您可以使用LaTeX标记作为pdf。例如。只需在表格之前发出\footnotesize指令。有关详细信息,请参阅可能的字体大小:http://en.wikibooks.org/wiki/LaTeX/Fonts#Sizing_text

答案 1 :(得分:0)

您可以更改pander中特定单元格的字体大小,从而更改整个表格,但作为使用乳胶代码的变通方法。

您的手机所在的位置,如果填充您的手机的数据是&#34; 770&#34;在另一个由&#34; $ 731,258&#34;填充的单元格旁边, 如果用$arr = array(); if (!empty($_POST['keywords'])) { $keywords = $_POST['keywords']; $sql = $wpdb->get_results("SELECT result_id, end_home_odd, home_name FROM tbl_live WHERE home_name LIKE '%".$keywords."%'"); $result = $db->query($sql) or die($mysqli->error); if (count($result) > 0) { while ($obj = $result->fetch_object()) { $arr[] = array('id' => $obj->result_id, 'home' => $obj->end_home_odd, 'title' => $obj->home_name); } } } echo json_encode($arr); 替换第一个单元格,输出将如下所示:

enter image description here

如你所见,&#34; 770&#34;是一个较小的字体。 您可以使用任何乳胶字体标记执行此操作。