2016-03-01 11 views
17

मैं रमार्कडाउन और लाटेक्स/बीमर का उपयोग करके एक प्रस्तुति का निर्माण कर रहा हूं। मैं प्रदर्शित आर-कमांड और आर-आउटपुट के बीच अंतर को कम करना चाहता हूं। मेरा मानना ​​है कि यह लाटेक्स/बीमर में पैराग्राफ स्पेसिंग विकल्पों से संबंधित है।रैंकडाउन बीमर प्रस्तुति में कोड भाग और कोड आउटपुट के बीच स्थान कम करें

क्या यह कुछ मुझे रैंडडाउन (खंड विकल्प, knit_hooks, या कुछ और?) में करना चाहिए, पैंडोक याम हेडर (कुछ पैंडोक विकल्प?) में, या लाटेक्स बीमर टेम्पलेट फ़ाइल में? मुझे लगता है कि यह लाटेक्स टेम्पलेट फ़ाइल में होना चाहिए।

नीचे एक न्यूनतम मार्कडाउन फ़ाइल का एक कामकाजी उदाहरण है, और एक .tex टेम्पलेट फ़ाइल जिसका उपयोग मैं कुछ बीमर सेटिंग्स को नियंत्रित करने के लिए कर रहा हूं।

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 
``` 

लेटेक्स-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} 

मैं आर-आज्ञा या आर उत्पादन छोटे, जो करता है के फ़ॉन्ट बनाने की कोशिश की है अनुच्छेद अंतर को प्रभावित नहीं लग रहा है।

मैंने इस उदाहरण में knit_hooks() का उपयोग करने का प्रयास किया है: https://github.com/ramnathv/slidify/issues/189, जो अधिकतर काम करता है - लेकिन तब मैं कोड और आउटपुट के फ़ॉन्ट्स को कम नहीं कर सकता।

मैंने \parskip{0pt}, और कई अन्य बीमर विकल्प या पार्सकिप विकल्प का उपयोग करने का भी प्रयास किया है, जिन्हें उपर्युक्त latex-topmatter.tex अनुभाग में टिप्पणी की गई है। उनमें से कोई भी पाठ, आर-कोड, या आर-आउटपुट के हिस्सों के बीच अंतर को बदलने लगता है। क्या मैं सही जगह पर भी देख रहा हूं?

parskipNotWorking

+0

आप कभी भी इस के लिए एक समाधान मिला? धन्यवाद। – DataJack

+0

@DataJack नीचे देखें –

उत्तर

6

यहाँ एक काम कर उदाहरण है। हेडर फाइल के अंत में सूचना परिभाषाएँ:

  • स्रोत कोड हिस्सा एक Shaded वातावरण है जो बदले में अपने रिक्ति के लिए \OuterFrameSep का उपयोग करता है के अंदर निहित हैं। तो हमें इसे फिर से परिभाषित करने की जरूरत है।
  • \preto के साथ हम प्रत्येक क्रियात्मक वातावरण में \topsep=-10pt \partopsep=-10pt आदेशों को पूर्ववत करते हैं। यह आउटपुट हिस्सों के अंतर को प्रभावित करता है।

--- 
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 
``` 

example.Rmd 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

इसे हल करने के लिए धन्यवाद, मार्टिन! क्या आप इस समाधान को खोजने का कोई अन्य तरीका सुझा सकते हैं? यहां मेरा प्रश्न पोस्ट करना और 9 महीने का इंतजार करना एक तरीका है। लेटेक्स प्रलेखन के माध्यम से शिकार में मैं नियमित रूप से जो कुछ चाहता हूं उसे ढूंढने के लिए संघर्ष करता हूं, यह प्रश्न केवल एक उदाहरण है। – RyanStochastic

+1

मैं नहीं कर सकता। मैं वास्तव में हैरान हूं कि यह इतना लंबा लगा कि जवाब इतना मुश्किल नहीं है। –

संबंधित मुद्दे