2015-02-20 33 views
10

Próbuję dodać numery ramek do mojej prezentacji Beamer napisanej w rmarkdown. Chciałbym jednak pomijać liczby na stronie tytułowej za pomocą opcji \ begin {frame} [plain] (z drugiej odpowiedzi tutaj: https://tex.stackexchange.com/questions/82794/removing-page-number-from-title-frame-without-changing-the-theme). Jednak podczas kompilacji od rmarkdown do tex, \ titlepage tworzy już środowisko ramek, więc w efekcie uzyskuję podwójną ramkę, a tym samym błąd.Dodaj opcje ramki rzutnika w knitr/rmarkdown

więc podczas kompilowania to:

--- 
output: 
    beamer_presentation: 
    includes: 
     in_header: header.tex 
--- 

\begin{frame}[plain] 
\titlepage 
\end{frame} 

uzyskać to w lateksie:

\begin{frame{ 

    \begin{frame} 
    \titlepage 
    \end{frame} 

\end{frame} 

W header.tex mam to:

\let\otp\titlepage 
\renewcommand{\titlepage}{\otp\addtocounter{framenumber}{-1}} 

Więc moje obejście jest teraz aby użyć zwykłego \ maketitle w rmarkdown, a następnie skompilować do .tex, dodać opcję [plain], a następnie skompilować do pdf. Chciałbym jednak uniknąć tego pośredniego kroku. Czy jest to możliwe w przypadku rmarkdown?

Odpowiedz

5

używa pandoc do konwersji pliku Rmd do pliku pdf za pomocą beamer/lateksu. pandoc używa templates do kontrolowania konwersji.

Jednym ze sposobów radzenia sobie z problemem jest:

  1. Download the default beamer template zastosowania i otwórz go.

  2. Zmień linia 137 z tego:

    \frame{\titlepage} 
    

    do tego:

    \frame[plain]{\titlepage} 
    
  3. Dodaj ścieżkę do zmodyfikowanego szablonu w pliku Rmd:

    --- 
    output: 
        beamer_presentation: 
        includes: 
         in_header: header.tex 
        template:/path/to/new/template.tex 
    --- 
    

Należy pamiętać, że trzeba podać całą ścieżkę, lub zapisać szablon gdzie pandoc można go znaleźć (~/.pandoc/templates na maszynie Linux)