2015-06-26 23 views
9

Tôi đang suy nghĩ về việc viết luận án của mình với rmarkdown và latex. Tôi nhận được hang của tất cả các hoạt động như thế nào, tuy nhiên, khi tôi cố gắng để thêm một con số (không phải là một cốt truyện R) vào văn bản và đưa nó vào pdf, chú thích và tham chiếu trong văn bản biến mất.Cách tạo chú thích hình trong Rmarkdown?

Đây là đoạn mã tôi sử dụng để thêm một con số:

--- 
title: "Untitled" 
output: pdf_document 
--- 

see figure \ref{fig1}. 

![picture \label{fig1}](figure1.png) 

Đây là những gì knitr tạo:

Đây là những gì pandoc tạo:

Câu hỏi: Làm cách nào để tạo phụ đề hình ảnh và tham chiếu trong văn bản cho các số liệu đó trong Rmarkdown sẽ hiển thị khi được hiển thị bằng pdf?

HOẶC

Làm thế nào để nói với pandoc gì Rmarkdown là vì vậy nó sẽ mã render R và âm mưu?

Trả lời

6

Vui lòng xem tài liệu về R Markdown cho PDF output và đặc biệt, tìm kiếm fig_caption. Chú thích hình được tắt theo mặc định trong R Markdown, và bạn phải bật chúng (fig_caption: true). Bạn cũng có thể tìm thấy cài đặt này từ nút bánh răng trên thanh công cụ của RStudio IDE.

+0

Cảm ơn rất nhiều! Nó đã cho tôi một chút chơi xung quanh nhưng đang làm việc bây giờ (tôi đã không nhận ra cách Rmarkdown cụ thể là với khoảng cách tab để làm cho fig_caption làm việc). – rosannavh

1

Cập nhật: vui lòng kiểm tra https://github.com/yihui/knitr/issues/1063.

Câu hỏi: Làm cách nào để tạo phụ đề con số và tham chiếu trong văn bản cho các số liệu đó trong Rmarkdown sẽ hiển thị khi được hiển thị bằng pdf?

Để tham chiếu chéo trong tệp PDF do LaTeX tạo, bạn cần chạy LaTeX nhiều lần. Một số LaTeX IDE làm điều đó cho bạn.

knitr chỉ chạy LaTeX một lần và đó là lý do bạn chỉ nhận được ??. Để xác nhận rằng đây là vấn đề tôi chạy

library(knitr) 
knitr() 

trong R đó quay trở lại

see figure \ref{fig1}. 

\begin{figure}[htbp] 
\centering 
\includegraphics{imagem.jpg} 
\caption{picture \label{fig1}} 
\end{figure} 

mà là một mã LaTeX hợp lệ.

Làm thế nào để tôi nói với Pandoc những gì Rmarkdown là như vậy nó sẽ làm cho mã R và lô?

Pandoc chỉ hiểu Markdown (không RMarkdown). Trước tiên, bạn phải gọi knitr để tạo ra Markdown từ RMarkdown và sau khi nó gọi Pandoc để chuyển đổi Markdown thành LaTeX.

0

Tôi vừa tìm thấy giải pháp rất hữu ích here.

Thứ nhất, bao gồm các đoạn sau:

```{r functions, include=FALSE} 
# A function for captioning and referencing images 
fig <- local({ 
    i <- 0 
    ref <- list() 
    list(
     cap=function(refName, text) { 
      i <<- i + 1 
      ref[[refName]] <<- i 
      paste("Figure ", i, ": ", text, sep="") 
     }, 
     ref=function(refName) { 
      ref[[refName]] 
     }) 
}) 
``` 

Sau đó, chúng ta có thể thêm các chú thích của hình/table trong các tùy chọn con số đoạn như:

```{r, fig.cap=paste("Your caption.")} 
  • Thấy rằng fig.cap công trình tốt hơn với paste.
Các vấn đề liên quan