Как сделать рисунок в Rmarkdown?
Я думаю о написании своей диссертации с rmarkdown и латексом. Однако я понимаю, как все это работает, когда я пытаюсь добавить к тексту фигуру (не R-график) и рендерить ее в pdf, заголовок и текстовая ссылка исчезают.
Вот фрагмент кода, который я использую для добавления рисунка:
---
title: "Untitled"
output: pdf_document
---
see figure \ref{fig1}.

Вот что создает knitr:
Вот что создает pandoc:
Вопрос:
Как сделать подписи к рисункам и ссылки в тексте на эти рисунки в Rmarkdown, которые будут отображаться при рендеринге в pdf?
ИЛИ
Как мне сообщить Pandoc, что такое Rmarkdown, чтобы он отображал R-код и графики?
Ответы
Ответ 1
Пожалуйста, просмотрите документацию R Markdown для PDF-выход и, в частности, найдите fig_caption
. Фиксированные заголовки по умолчанию отключены в R Markdown, и вы должны включить их (fig_caption: true
). Вы также можете найти эту настройку с помощью кнопки переключения на панели инструментов RStudio IDE.
Ответ 2
Обновить: проверьте 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, чтобы сгенерировать Markdown из RMarkdown и после вызова Pandoc преобразовать Markdown в LaTeX.
Ответ 3
Я нашел очень полезное решение здесь.
Сначала включите следующий фрагмент:
```{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.