2016-03-01 16 views
17

Tôi đang tạo bản trình bày bằng cách sử dụng rmarkdown và LaTeX/Beamer. Tôi muốn giảm khoảng cách giữa các lệnh R được hiển thị và đầu ra R. Tôi tin rằng điều này có liên quan đến các tùy chọn khoảng cách đoạn trong LaTeX/Beamer.Giảm khoảng cách giữa các đoạn mã và đầu ra mã trong bản trình bày beamer reaver

Đây có phải là điều tôi nên làm trong rmarkdown (chunk options, knit_hooks, hoặc cái gì khác?), Trong tiêu đề Yamand pandoc (một số tùy chọn pandoc?), Hoặc trong tập tin mẫu beamer LaTeX? Tôi cảm thấy nó phải nằm trong tập tin mẫu LaTeX.

Dưới đây là ví dụ hoạt động của tệp đánh dấu tối thiểu và tệp mẫu .tex tôi đang sử dụng để kiểm soát một số cài đặt beamer.

example.Rmd

--- 
title: "Untitled" 
author: "Ryan" 
date: "March 1, 2016" 
output: 
    beamer_presentation: 
    pandoc_args: '--latex-engine=xelatex' 
    includes: 
     in_header: latex-topmatter.tex 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
``` 

## Vertical Spacing is too much 

Here is a working example. 

- some 
- bullets 

Example code: 

```{r, echo = TRUE} 
a <- 1 
a 
a+a 
``` 

mủ-topmatter.tex

% declare overall beamer theme to use as baseline 
\usetheme{default} 

% make code-output smaller 
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\tiny,commandchars=\\\{\}} 

% make console-output smaller: 
\makeatletter 
\def\verbatim{\tiny\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} 
\makeatother 

% set vertical spacing between paragraphs: 
% \parskip{0pt} 
% \addtobeamertemplate{blocks}{}{\setlength{\parskip}{0pt}} 
% \addtobeamertemplate{block begin}{}{\setlength{\parskip}{0pt}} 
% \addtobeamertemplate{block end}{}{\setlength{\parskip}{0pt}} 
% % \setlength{\emergencystretch}{0em} 
\setlength{\parskip}{0pt} 

tôi đã cố gắng làm cho phông chữ của R-lệnh hoặc R-đầu ra nhỏ hơn, mà không dường như không ảnh hưởng đến khoảng cách đoạn văn.

Tôi đã thử sử dụng knit_hooks() như trong ví dụ này: https://github.com/ramnathv/slidify/issues/189, chủ yếu là hoạt động - nhưng sau đó tôi dường như không thể giảm phông chữ của mã và đầu ra.

Tôi cũng đã thử sử dụng \parskip{0pt} và một số tùy chọn beamer khác hoặc tùy chọn phân tích cú pháp, được nhận xét trong phần latex-topmatter.tex ở trên. Không ai trong số họ dường như thay đổi khoảng cách giữa các khối văn bản, R-code hoặc R-output. Tôi thậm chí có đang tìm đúng chỗ không?

parskipNotWorking

+0

Bạn đã bao giờ tìm thấy một giải pháp cho điều này? Cảm ơn. – DataJack

+0

@DataJack xem bên dưới –

Trả lời

6

Đây là ví dụ làm việc. Chú ý các định nghĩa ở phần cuối của tập tin tiêu đề: khối đang

  • Nguồn được chứa bên trong một môi trường Shaded mà lần lượt sử dụng \OuterFrameSep cho khoảng cách của nó. Vì vậy, chúng ta cần phải xác định lại điều đó.
  • Với \preto, chúng tôi sẽ thêm các lệnh \topsep=-10pt \partopsep=-10pt vào mọi môi trường đúng nguyên văn. Điều này ảnh hưởng đến khoảng cách của khối lượng đầu ra.

example.Rmd

--- 
title: "Untitled" 
author: "Martin" 
date: "January 4, 2017" 
output: 
    beamer_presentation: 
    keep_tex: yes 
    pandoc_args: --latex-engine=xelatex 
    includes: 
     in_header: latex-topmatter.tex 
--- 

```{r setup, include=FALSE} 
knitr::opts_chunk$set(echo = TRUE) 
``` 

## Vertical Spacing is just right 

Here is a working example. 

- some 
- bullets 

Example code: 

```{r, echo = TRUE} 
a <- 1 
a 
a+a 
``` 

latex_topmatter.tex

% declare overall beamer theme to use as baseline 
\usetheme{default} 

% make code-output smaller 
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\tiny,commandchars=\\\{\}} 

% make console-output smaller: 
    \makeatletter 
\def\verbatim{\tiny\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} 
\makeatother 


\setlength{\parskip}{0pt} 


\setlength{\OuterFrameSep}{-4pt} 
\makeatletter 
\preto{\@verbatim}{\topsep=-10pt \partopsep=-10pt } 
\makeatother 

enter image description here

+0

Cảm ơn bạn đã giải quyết điều đó, Martin! Bạn có thể đề xuất bất kỳ cách nào khác để tìm giải pháp này không? Gửi câu hỏi của tôi ở đây và chờ đợi 9 tháng là một cách. Trong săn bắn thông qua tài liệu latex tôi thường xuyên đấu tranh để tìm thấy những gì tôi cần, câu hỏi này chỉ là một ví dụ. – RyanStochastic

+1

Tôi không thể. Tôi thực sự ngạc nhiên rằng phải mất nhiều thời gian cho rằng câu trả lời không phải là khó khăn. –

Các vấn đề liên quan