2015-01-08 13 views
10

Piszę dokument w R markdown (.rmd). Chciałbym być w stanie zrobić na wyjściu zarówno Word, jak i PDF. Mam trudności z numerowaniem figur. W przypadku pliku PDF dane liczbowe były automatycznie numerowane (za pomocą wyjścia Latex z rys. Lp?), Ale liczby nie były ponumerowane w programie Word.Pomiń automatyczne numerowanie figur w pliku wyjściowym pdf z r markdown/knitr

Po wielu poszukiwaniach znalazłem kod, który zapewni numerowanie figur w Wordzie - ale teraz otrzymuję numerację dwu stron podczas dziania pliku PDF. Jestem nowy, więc nie mogę wstawić obrazu. Ale podpis postać wygląda następująco:

rysunku 1. Rysunek 1. bla bla bla

Czy istnieje sposób, aby stłumić automatyczną numerację dla PDF?

Podobne pytanie zadano here, ale rozwiązanie nie zostało podane. Mój nagłówek YAML i numeracja chunck są zawarte poniżej.

YAML:

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

Rysunek kod numeracja (znaleziono poprzez 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]) 
     } 
    } 
}) 

to wówczas nazywano w opcji fragmentach następująco:

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

Świetne pytanie. Szkoda, że ​​mogę dać tylko jeden punkt kredytowy. –

Odpowiedz

2

Czy istnieje sposób wyłączyć automatyczne numerowanie plików PDF?

Pewnie. Dodaj zmienną format dla formatu wyjściowego i procedurę obsługi dla tego formatu w zakresie figref. Z wersją podglądu RStudio możesz użyć format <- knitr::opts_knit$get("out.format"), ale w wersji release musisz ustawić ją ręcznie.
Następnie w figref() dodatku cokolwiek pragnienie wyjścia ...

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

Osobiście bym użyć edycję podglądu oraz switch dla obsługi. Wzdłuż linii https://stackoverflow.com/a/27321367/173985.