2016-02-28 74 views
5

Attualmente sto preparando una presentazione in RStudio (utilizzando RMarkdown e Knitr, l'output in una presentazione di Beamer) che ha alcuni riferimenti.Riferimenti troncati in Beamer Presentazione preparata in Knitr/RMarkdown

sto usando un colpo di testa abbastanza tipico YAML:

--- 
title: "Title" 
author: "Me" 
date: "February 27th, 2016" 
output: 
    beamer_presentation 
csl: ../../apa.csl 
bibliography: ../../RefenceDesk.bib 
--- 

Questa presentazione compila e riferimenti appaiono come dovrebbero, ma purtroppo tutto comparire su un vetrino (e in realtà correre fuori dalla pagina). C'è un modo per far apparire i riferimenti su più diapositive?

risposta

1

Anche se questo va al di fuori utilizzando il modello normale Pandoc citazione, ho trovato un altro approccio che può essere utilizzato per inserire i riferimenti attraverso le diapositive ma si basa sul pacchetto di citazioni natbib.

In materia fronte YAML, ho aggiunto:

--- 
title: "Title" 
output: 
    beamer_presentation: 
    citation_package: natbib 
bibliography: ../../RefenceDesk.bib 
biblio-style: "apalike" 
--- 

La slitta di riferimento non ottiene un titolo e io non riesco a regolare la dimensione del carattere (utilizzando un \scriptsize alla fine del file .Rmd) , ma almeno appaiono coerenti.

MODIFICA: per parsimonia, ho rimosso la riga csl: ../../apa.csl, poiché natbib non lo richiede.

+1

ha funzionato per me! Se qualcuno riceve un errore causato da natbib '! Errore LaTeX: \ newblock undefined. Quindi aggiungi questa riga '\ newcommand {\ newblock} {}' – akhmed

5

{.allowframebreaks} è la soluzione per le bibliografie multislide in beamer. Funziona immediatamente con i modelli pandoc regolari (vedere my previous answer). Tuttavia, knitr ha un'impostazione che lo impedisce, ridefinendo \widowpenalties nel suo modello di beamer. È possibile verificare che se si esamina il file .tex con keep_tex: true.

A mio parere, questo è un bug. Una soluzione rapida sarebbe quella di ripristinare \widowpenalties al suo valore predefinito. Si può fare in materia fronte YAML:

--- 
title: Title 
header-includes: 
    - \widowpenalties 1 150 
output: 
    beamer_presentation 
--- 

Quindi, è possibile indicare la sezione di riferimento in quanto tale:

## References {.allowframebreaks} 
+0

Interessante! Ho scoperto '{.allowframebreaks}' la scorsa notte, ma non ha fatto nulla. Ho appena provato ad aggiungere l'header-include - ma in realtà non sembra che cambi i valori nel file .tex. Dopo averlo compilato, se apro il file .tex, dice ancora '\ widowpenalties 1 10000'. –

+0

Congratulazioni! Molto bene! – Jean