web-dev-qa-db-ja.com

Rmarkdownで図のキャプションを作成する方法は?

Rmarkdownとlatexを使って論文を書くことを考えています。しかし、テキストに図(Rプロットではない)を追加してpdfにレンダリングしようとすると、すべてがどのように機能するかがわかります。キャプションとテキスト内の参照が消えます。

これは、図を追加するために使用するコードスニペットです。

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

see figure \ref{fig1}.

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

これはknitrが作成するものです:

これはpandocが作成するものです:

質問:PDFにレンダリングしたときに表示されるRmarkdownの図に図のキャプションと本文内参照を作成するにはどうすればよいですか?

OR

どのようにRdocdownが何であるかをpandocに伝えて、Rコードとプロットをレンダリングしますか?

12
rosannavh

PDF出力 については、Rマークダウンのドキュメントを参照してください。特に、fig_captionを探してください。 Rマークダウンでは、図のキャプションはデフォルトでオフになっているため、オンにする必要があります(fig_caption: true)。この設定は、RStudio IDEのツールバーの歯車ボタンからも見つけることができます。

10
Yihui Xie

更新https://github.com/yihui/knitr/issues/106 を確認してください。

質問:PDFにレンダリングされたときに表示されるRmarkdownの図への図のキャプションと本文参照をどのように作成しますか?

PDF LaTeXによって生成されたクロスリファレンスを取得するには、LaTeXを複数回実行する必要があります。一部のLaTeX IDEがそれを実行します。

knitrはLaTeXを1回だけ実行しているため、??のみが取得されます。これが実行した問題であることを確認するには

library(knitr)
knitr()

戻ってきたRで

see figure \ref{fig1}.

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

これは有効なLaTeXコードです。

Rmarkdownとは何かをpandocに教えて、Rコードとプロットをレンダリングするにはどうすればよいですか?

PandocはMarkdownのみを理解します(RMarkdownは理解しません)。最初にknitrを呼び出してRMarkdownからMarkdownを生成し、Pandocを呼び出してMarkdownをLaTeXに変換する必要があります。

3
Raniere Silva

私は非常に便利な解決策を見つけました here

まず、次のチャンクを含めます。

```{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.cappaste.
1
Cro-Magnon