-
-
Save yihui/2790922 to your computer and use it in GitHub Desktop.
\documentclass{article} | |
\begin{document} | |
We can draw a table with the gridExtra package, and one problem is to | |
pre-determine the size of the table plot to remove the extra white | |
margin. Below is an example that shows you how to do it (courtesy of | |
baptiste auguie). | |
<<setup>>= | |
library(gridExtra) | |
g = tableGrob(head(iris, 4)) | |
<<draw-table, dev='png', dpi=150, fig.width=convertWidth(grobWidth(g), "in", value=TRUE), fig.height=convertHeight(grobHeight(g), "in", value=TRUE)>>= | |
grid.draw(g) | |
@ | |
\end{document} |
many people think <<>>=
has to be ended by @
but that is not true; the original syntax of literate programming defined <<>>=
to open code chunks, and @
to open documentation chunks, so I can use two <<>>=
successively and they are two separate chunks; you can certain add @
before the second chunk, but that is unnecessary because there is no text between the two chunks
knitr does not produce Rplots.pdf
at all (details at yihui/knitr#9)
Thanks, I didn't know that. Regarding Rplots.pdf
, it is definitely created when I knit the gist above. Do you mean that it's not knitr's fault that it exists (which is correct, grid opens a device also in interactive use to test the fontsize)?
I see. I did not know convertWidth()
has to open a device. I'll fix this. Thanks!
fixed; will appear in my next commit
Thanks!
Was looking for exactly this! Is there any way to reduce the amount of typing involved? I'm using your code in a similar way with Rmd:
```{r}
g = tableGrob(head(iris, 4))
```{r draw-table, dev='png', dpi=72, fig.width=convertWidth(grobWidth(g), "in", value=TRUE), fig.height=convertHeight(grobHeight(g), "in", value=TRUE)}
grid.draw(g)
```
I'm confused: is
<<draw-table>>
inside<<setup>>
, or is there a missing@
? Also, can knitr remove the dummy Rplots.pdf?