[R-es] ¿Cómo generar tabla apaisada salida PDF con RMarkdown?

Juan Abasolo vcpabisj en gmail.com
Vie Sep 9 12:09:02 CEST 2016


Muchas gracias, José Antonio y Carlos.

Estaba por escribir sandeces varias. Comento, por si hay algún lector, 
que como yo, se guarda los correos con respuestas a problemas posibles.

No estaba usando|header.tex|, que es necesario para una como para otra 
solución.

El encabezado queda así:
|---||
||title: "Tablas que no entran"||
||author: "Sandia Urlia"||
||date: ""||
||output: ||
||    pdf_document:||
||        includes:||
||            in_header: header.tex ||
||---
|
La solución que comentó Carlos (la de: 
http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf) 
tiene la ventaja de que permite girar tablas generadas con |kable()| sin 
más que poner tres lineas de código tex. Importante dejar un espacio 
después de terminar el chunk y antes de |\elandscape|.

|
||\newpage||
||\blandscape||
||```{r }||
||la.tabla.ancha <- cars[c(1:10),rep(1,14)]||
||knitr::kable(la.tabla.ancha, caption = "La tablaza")||
||```||
||
||\elandscape|

También sirve para girar código o lo que haga falta. En el caso de 
arriba aparecen girados el código y la tabla.
En contra (o a favor) el entorno no es flotante, por lo que en el punto 
en el que se coloque irá la página nueva


La solución que comentó josé Antonio requiere que en el documento 
header.tex se incluya la linea:
|
||\usepackage{rotating}

|
Que, por otro lado, es lo que le faltaba al documento que había 
presentado antes para poder funcionar.
https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf 
(pag. 25)

Así quedó el chunk

|```{r results='asis'}||
library(xtable)
||x <- xtable(||
||        la.tabla.ancha, caption = "La tablota (2)"||
||    )||
||options(xtable.comment = FALSE)||
||print(x, floating = TRUE,||
||        floating.environment = "sidewaystable"||
||    )||
||```|

Pero atento! Que esta otra forma no funciona:
|
||```{r results='asis'}||
||options(xtable.comment = FALSE)||
||print(||
||    xtable::xtable(||
||        la.tabla.ancha, caption = "La tablota (1)",||
||        floating = TRUE,||
||        floating.environment = "sidewaystable"||
||    ))||
||```|
Para que funcione, tiene que estar generado el elemento |xtable| antes 
de |print()| y luego asignarlo.

A favor (o en contra): el entorno que genera es flotante, por lo que se 
insertará según las reglas de composición de LaTeX y no ahí mismo donde 
uno está escribiendo.

Un posible header.tex para ver las dos soluciones:

|||%para que rote con xtable
||\usepackage{rotating}||

%para girar a piacere
||\usepackage{lscape}||
||\newcommand{\blandscape}{\begin{landscape}}||
||\newcommand{\elandscape}{\end{landscape}}|



og., 2016.eko iraren 08a 18:36(e)an, Carlos Ortega igorleak idatzi zuen:
> Hola,
>
> Creo que esta referencia de StackOverflow te puede ayudar:
>
> http://stackoverflow.com/questions/25849814/rstudio-rmarkdown-both-portrait-and-landscape-layout-in-a-single-pdf
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es <http://www.qualityexcellence.es>
>
> El 8 de septiembre de 2016, 17:28, Juan Abasolo <vcpabisj en gmail.com 
> <mailto:vcpabisj en gmail.com>> escribió:
>
>     Buenas a todos.
>
>     No me queda del todo claro si éste es el foro en el que preguntar
>     o debería ser otro, ya que incluye cosas que van más allá de R.
>     Sepan disculpar si me estoy excediendo.
>
>     Estoy trabajando con RStudio y quiero generar un documento de
>     salida en PDF; en ese documento tengo bastantes tablas anchas que
>     no entran usando
>
>     knitr::kable(la.tabla.ancha)
>
>     Sí salen perfectamente en HTML (no son tan anchas). Me resulta
>     evidente que si las pudiera poner a página entera en formato
>     apaisado, no tendría problema y es lo que querría hacer.
>
>     Intenté conseguirlo usando 'xtable' con un código que encontré por
>     ahí. Pongo seguido un ejemplo para poner en un documento Rmd
>
>     ---
>     title: "Tablas que no entran"
>     author: "Sandia Urlia"
>     date: ""
>     output: pdf_document
>     ---
>
>     ```{r setup, include=FALSE}
>     knitr::opts_chunk$set(echo = TRUE)
>     ```
>
>
>     ```{r}
>     la.tabla.ancha <- cars[c(1:10),rep(1,14)]
>     knitr::kable(la.tabla.ancha, caption = "La tablaza")
>     ```
>
>
>     ```{r results='asis'}
>     options(xtable.comment = FALSE)
>     print(
>         xtable::xtable(
>             la.tabla.ancha, caption = "La-tablota",
>             floating = TRUE,
>             floating.environment = "sidewaystable",
>             type = "html"
>         ))
>
>     ```
>     Y así se ve que las tablas no entran :__(
>
>     Muchas gracias
>
>     _______________________________________________
>     R-help-es mailing list
>     R-help-es en r-project.org <mailto:R-help-es en r-project.org>
>     https://stat.ethz.ch/mailman/listinfo/r-help-es
>     <https://stat.ethz.ch/mailman/listinfo/r-help-es>
>
>
>
>
> -- 
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es <http://www.qualityexcellence.es>

-- 
Juan Abasolo Didaktika eta Eskola Antolakuntza saila Bilboko Irakasleen 
Unibertsitate Eskola 94 601 4624 Beste kontaktu batzuk Telegram: 
@JuanAbasolo Skype: abasolo72

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es