2014-12-12 18 views
7

Zasadniczo mam dokument RMD skonfigurowany tak:* Niektóre * rysunek podpisy od RMarkdown nie pokazując

--- 
title: "Example" 
author: "me" 
date: "December 2014" 
output: 
    pdf_document: 
    fig_caption: yes 
    keep_tex: yes 
-- 

Następnie w dokumencie, używam ggplot2 pokazać kilka wykresów, na przykład:

```{r myLabel, fig.cap='My Caption'} 
qplot(1:10, 10:1) 
``` 

Teraz, z jakiegoś powodu nie mogę wyjaśnić ani zbadać głębiej niż to, wyprodukowany TeX nie zawiera środowiska figury, nawet jeśli wymuszam je przy pomocy fig.env='figure'. Zamiast tego, TeX ma tylko polecenia includegraphics:

\includegraphics{journal_files/figure-latex/myLabel-1.pdf} 

Inne postacie w tym samym dokumencie mają środowiska rysunku z podpisem. Czyli wyjście TeX "Dzianina PDF" powinny produkować to:

\begin{figure}[htbp] 
\centering 
\includegraphics{journal_files/figure-latex/myLabel-1.pdf} 
\caption{My Citation} 
\end{figure} 

Okno dziennika Markdown R pokazuje tylko nieistotnych rzeczy:

label: myLabel (with options) 
List of 2 
$ fig.cap: chr "My Caption" 
$ fig.env: chr "figure" 

cropping journal_files/figure-latex/myLabel-1.pdf 
PDFCROP 1.38, 2012/11/02 - Copyright (c) 2002-2012 by Heiko Oberdiek. 

Jak mogę albo

  • dowiedzieć się, co dokładnie się dzieje (dziennik debugowania?) po naciśnięciu "Knit PDF" i przejściu do TeX (okno wyjściowe "R Markdown" nie pokazuje błędów, a nawet echo [brak] napisów!),
  • czy, jeszcze lepiej, ktoś ma ten problem i wie, co jest nie tak z RStudio, knitr i pandoc?

Odpowiedz

11

Okazuje się, rozwiązanie jest całkiem prosta: kompilator RMarkdown nie pokazuje tytuły dwóch kolejnych liczb, na przykład:

```{r myLabel1, fig.cap='My Caption 1'} 
qplot(1:10, 10:1) 
``` 
```{r myLabel2, fig.cap='My Caption 2'} 
qplot(1:10, 10:1) 
``` 

lub na rysunku nie oddzielone od tekstu w nowym ustępie w następujący sposób:

```{r myLabel1, fig.cap='My Caption 1'} 
qplot(1:10, 10:1) 
``` 
As shown in Fig. 2, the inter-galactic distances are strongly correlated with the observed redshift ... 

W tym ustawieniu brakuje napisów i nie ma środowiska graficznego w pliku TeX.

Zamiast między dwoma działek, istnieje musi wynosić co najmniejdwarozstaw (nowa linia) znaków. To znaczy, to działa dobrze i oba podpisy pokazują:

```{r myLabel1, fig.cap='My Caption 1'} 
qplot(1:10, 10:1) 
``` 

```{r myLabel2, fig.cap='My Caption 2'} 
qplot(1:10, 10:1) 
``` 

Chociaż jest to cecha, aby umożliwić włączenie grafiki inline, byłoby miło, gdyby nie było ostrzeżenie dla liczb z argumentem fig.cap to się nie pokazuje.

+0

Zostało to udokumentowane w dokumentacji Pandoc: http://johnmacfarlane.net/pandoc/README.html#images To nie jest _error_ (ale wyrażenie, które chcesz zamiast tego zrobić), więc rmarkdown naprawdę nie może wiele z tym zrobić . –

+2

Cóż, nie jestem w stanie wydedukować tego problemu z połączonych informacji ani z żadnego innego miejsca. Dodatkowo, myślę, że wynik "kompilatora" powinien przynajmniej przedstawiać ostrzeżenie, że wprowadzenie potrójnych zwrotów na początku dwóch kolejnych linii jest czymś, co nie będzie obsługiwane poprawnie. – fnl

+1

Dokumentacja mówi "Obraz występujący ** sam w sobie w akapicie ** będzie renderowany jako figura z napisem", a ** akapit ** oznacza znak nowej linii. –