2015-08-28 65 views
4

我是knitr的新手,過去我有一些非常基本的乳膠知識,所以我一直在尋找一個已經發布到某處的解決方案。但是,我無法解決我的問題。我希望有人會提供幫助。在knitr(PDF)文件中的長期使用:使用xtable(或kable)

我有一個14列和許多行的數據框,讓我們說60.使用這些數據我需要在橫向佈局中生成PDF報告並將此數據框作爲表格呈現在那裏。

我發現的最接近的解決方案是在這裏 tex.stackexchange.com: LaTex Longtable spanning several pages

我用了一些線索那裏。但是,表格放置不正確。最右邊的列在頁面的右邊被截斷。該表格在頁面末尾沒有「Continued」字樣。我在這裏發佈我的代碼和圖片。

我是一個解決方案,將longtables正確放置在頁面上,如果我缺少任何明顯的請勿拍攝:)我對此很新。

\documentclass[a4paper, landscape]{article} 
\usepackage[a4paper, margin=1in, hmarginratio=1:1, landscape]{geometry} 
\usepackage{longtable} 
\usepackage{graphicx} 
\usepackage{xcolor} 
\definecolor{myblue}{RGB}{24,57,121} 
\usepackage{lipsum} 
\usepackage{booktabs} 
\usepackage{colortbl} 
\usepackage{array} 
\usepackage{rotating} 
\usepackage{fancyhdr} 
\pagestyle{fancy} 
\fancyhead{} 
\fancyfoot{} 
\renewcommand{\headrulewidth}{0.5pt} 
\setlength\headheight{40mm} 
\begin{document} 
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} 
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} 
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} 
\renewcommand*{\arraystretch}{1.0} 
% 
\section{My Long Table} 
%\begin{center} 
%\begin{small} 
%\setlongtables 
%\begin{longtable} 
<<echo=FALSE, eval=TRUE, results='asis'>>= 
library(knitr) 
library(xtable) 
df <- data.frame(replicate(13, sample(1000000:9000000, 60,replace=TRUE))) 
df$Sum <- rowSums(df) 
totals <- colSums(df) 
df <- rbind(df, totals) 
names(df) <- c("Jan 2014", "Feb 2014", "Mar 2014", "Apr 2014", "May 2014", "Jun 2014", "Jul 2014", 
      "Aug 2014", "Sep 2014", "Oct 2014", "Nov 2014", "Dec 2014", "Jan 2015", "Sum") 
# 
dtable <- xtable(x = df) 
print (dtable 
      #, table.placement = "H" 
      , table.placement = "!htp" 
      , caption.placement = "top" 
      , include.rownames = TRUE 
      , include.colnames = TRUE 
      , size = "footnotesize" 
      , tabular.environment = 'longtable' 
      , floating = FALSE 
      #, scalebox = 0.7 
      #, width = 0.8 
      , add.to.row = list(pos = list(0),command = 
        paste("\\hline \\endfirsthead" ,       # First caption 
        "\\caption[]{My Caption should be here} \\label{tab:The Table} \\\\ \\hline", # Additional captions 
        paste("&", names(df), collapse=" "), 
        "\\\\ \\hline ", 
        "\\endhead", 
        "\\hline \\multicolumn{11}{r}{\\textit{Continued}} \\      
        \\endfoot 
        \\endlastfoot",collapse=" "))) 
@ 
%\end{longtable} 
%\end{small} 

%\end{center} 
\end{document} 

enter image description here enter image description here

回答

1

我覺得我在kableExtra的開發版本,基本上解決了這個問題。

library(knitr) 
library(kableExtra) 
kable(df, "latex", longtable = T, booktabs = T) %>% 
    kable_styling(latex_options = c("repeat_header"), font_size = 7) %>% 
    landscape() 

因爲longtable不支持resizebox,你不能在latex_options使用 「scale_down」 選項。我試圖將字體縮小到7,看起來很不錯。

相關問題