首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针织(PDF)文档中的Longtable :使用xtable (或kable)

针织(PDF)文档中的Longtable :使用xtable (或kable)
EN

Stack Overflow用户
提问于 2015-08-28 15:35:34
回答 1查看 7.9K关注 0票数 14

我是一个新手,并且在过去我已经有了一些非常基本的latex知识,所以我已经搜索过了,希望能找到一个已经发布在某个地方的解决方案。然而,我无法解决我的问题。我希望有人能好心提供帮助。

我有一个14列多行的数据帧,假设是60行。使用我需要的数据在景观布局中生成PDF报告,并在那里以表格的形式显示此数据框架。

我找到的最接近的解决方案是tex.stackexchange.com: LaTex Longtable spanning several pages

我在那里使用了一些提示。但是,桌子的位置不正确。最右边的列在页面的右边缘被截断。表格的页面末尾没有“继续”字样。我在这里发布了我的代码和图片。

我正在寻找一个解决方案,把长度表正确地放在页面上,如果我遗漏了任何明显的东西,请不要拍摄:)我对此真的很陌生。

代码语言:javascript
复制
\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}

EN

回答 1

Stack Overflow用户

发布于 2017-06-15 07:03:17

我想我在kableExtra的开发版本中基本上解决了这个问题。

代码语言:javascript
复制
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,它看起来很好。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32265676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档