Как сделать подпись к рисунку в Rmarkdown?
Я думаю о написании моей диссертации с rmarkdown и latex. Я получаю представление о том, как все это работает, однако, когда я пытаюсь добавить фигуру (а не r-график) в текст и отобразить ее в pdf, заголовок и текстовая ссылка исчезают.
Это фрагмент кода, который я использую для добавления фигуры:
---
title: "Untitled"
output: pdf_document
---
see figure ref{fig1}.
![picture label{fig1}](figure1.png)
это то, что создает knitr:
это то, что создает pandoc:
вопрос: Как сделать подписи к рисункам и в тексте ссылки на те цифры в Rmarkdown, которые будут отображаться при рендеринге в pdf?
или
как сказать pandoc, что такое Rmarkdown, чтобы он отображал R-код и графики?
3 ответов
пожалуйста, смотрите документацию R Markdown для вывод PDF, и, в частности, искать fig_caption
. Подписи к рисункам по умолчанию отключены в R Markdown, и вы должны включить их (fig_caption: true
). Вы также можете найти этот параметр с помощью кнопки передач на панели инструментов RStudio IDE.
обновление: пожалуйста, проверьте https://github.com/yihui/knitr/issues/1063.
вопрос: Как сделать подписи фигур и текстовые ссылки на те цифры в Rmarkdown, которые будут отображаться при отображении в pdf?
чтобы получить перекрестную ссылку в PDF-файле LaTeX, вам нужно запустить LaTeX более одного раза. Некоторые LaTeX IDE делают это за вас.
knitr запускает LaTeX только один раз, и именно по этой причине вы только получите ??
. Чтобы подтвердить, что это была проблема, я побежал
library(knitr)
knitr()
в R, который возвращен
see figure \ref{fig1}.
\begin{figure}[htbp]
\centering
\includegraphics{imagem.jpg}
\caption{picture \label{fig1}}
\end{figure}
который является допустимым кодом LaTeX.
как сказать pandoc, что такое Rmarkdown, чтобы он отображал R-код и графики?
Pandoc понимает только Markdown (не RMarkdown). Сначала вам нужно вызвать knitr для создания уценки из RMarkdown и после этого вызвать Pandoc для преобразования уценки в латекс.
Я только что нашел очень полезное решение здесь.
во-первых, включите следующий кусок:
```{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]]
})
})
```
после этого мы можем добавить заголовок рисунка / таблицы в параметрах фрагмента рисунка, таких как:
```{r, fig.cap=paste("Your caption.")}
- видно, что
fig.cap
лучше работает сpaste.