Добавить параметры рамки луча в knitr/rmarkdown

Я пытаюсь добавить номера кадров в мою презентацию Beamer, написанную в rmarkdown. Однако я хотел бы подавить номера на титульной странице, используя параметр \begin {frame} [plain] (со второго ответа здесь: https://tex.stackexchange.com/info/82794/removing-page-number-from-title-frame-without-changing-the-theme). Однако при компиляции из rmarkdown в tex,\titlepage уже создает среду фрейма, поэтому я получаю двойной кадр и, следовательно, ошибку.

Поэтому, компилируя это:

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

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

Я получаю это в латексе:

\begin{frame{

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

\end{frame}

В header.tex у меня есть это:

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

Итак, теперь мне нужно просто использовать простой файл \maketitle в rmarkdown, затем скомпилировать его в .tex, добавить параметр [plain], а затем скомпилировать в pdf. Однако я хотел бы избежать этого промежуточного шага. Возможно ли это в rmarkdown?

Ответ 1

rmarkdown использует pandoc для преобразования Rmd файла в pdf через лучер/латекс. pandoc использует templates для управления процессом преобразования.

Один из способов решения вашей проблемы:

  • Загрузить шаблон шаблона по умолчанию rmarkdown использует и открывает его.

  • Измените строку 137 следующим образом:

    \frame{\titlepage}
    

    Для этого:

    \frame[plain]{\titlepage} 
    
  • Добавьте путь к вашему измененному шаблону в файле Rmd:

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

Обратите внимание, что вам нужно указать весь путь или сохранить шаблон, в котором pandoc может найти его (~/.pandoc/templates на Linux-машине)