2015-01-08 15 views
10

Sto scrivendo un documento in R markdown (.rmd). Mi piacerebbe essere in grado di lavorare a maglia sia in Word che in PDF. Sto avendo difficoltà con la numerazione delle figure. Con l'output PDF, le cifre venivano automaticamente numerate (tramite l'output Latex di fig.lp?) Ma le cifre non erano numerate in Word.Sopprime la numerazione automatica dei numeri in output pdf con markdown/knitr

Dopo molte ricerche, ho trovato il codice che fornirà la numerazione delle figure in Word, ma ora ottengo la doppia numerazione delle pagine quando si lavora a maglia un PDF. Sono nuovo, quindi non posso inserire un'immagine. Ma la didascalia appare come:

Figura 1. Figura 1. Blah Blah Blah

C'è un modo per sopprimere la numerazione automatica per PDF?

Una domanda simile è stata posta here, ma non è stata fornita una soluzione. L'intestazione YAML e il chunck di numerazione delle figure sono inclusi di seguito.

YAML:

output: 
    pdf_document: 
    fig_caption: yes 
    keep_tex: yes 
    word_document: 
    fig_caption: yes 

figura codice di numerazione (che si trova via http://galahad.well.ox.ac.uk/repro/)

figRef <- local({ 
    tag <- numeric() 
    created <- logical() 
    used <- logical() 
    function(label, caption, prefix = options("figcap.prefix"), 
     sep = options("figcap.sep"), prefix.highlight = options("figcap.prefix.highlight")) { 
     i <- which(names(tag) == label) 
     if (length(i) == 0) { 
      i <- length(tag) + 1 
      tag <<- c(tag, i) 
      names(tag)[length(tag)] <<- label 
      used <<- c(used, FALSE) 
      names(used)[length(used)] <<- label 
      created <<- c(created, FALSE) 
      names(created)[length(created)] <<- label 
     } 
     if (!missing(caption)) { 
      created[label] <<- TRUE 
      paste0(prefix.highlight, prefix, " ", i, sep, prefix.highlight, 
       " ", caption) 
     } else { 
      used[label] <<- TRUE 
      paste(prefix, tag[label]) 
     } 
    } 
}) 

questo viene poi chiamato in opzioni Chunk come segue:

```{r, echo=FALSE, message=FALSE, fig.width=6, fig.cap=figRef("Ex-Airfoil", "Example NACA Airfoil")} 
+0

Ottima domanda. Peccato, posso solo dare un punto di credito. –

risposta

2

Esiste un modo sopprimere la numerazione automatica per PDF?

Sicuro. Aggiungi una variabile format per il tuo formato di output e un gestore per quel formato entro figref. Con l'edizione di anteprima di RStudio è possibile utilizzare format <- knitr::opts_knit$get("out.format") ma con la versione di rilascio è necessario impostarlo manualmente.
Poi nel figref() add tutto ciò che desideri per l'uscita ...

if (format == "latex") return(caption) 
    if (!missing(caption)) { 
    --- >8 --- 

Personalmente userei l'edizione di anteprima e un'istruzione switch per la movimentazione. Lungo le linee di https://stackoverflow.com/a/27321367/173985.

Problemi correlati