1

R マークダウンと Tufte 配布資料出力を使用してレポートを作成し、pdf を作成しようとしています。提案されたアプローチのいずれを使用しても、テキストに図の参照を配置できませんでした。誰かが私がそれを行う方法を説明できることを願っています。何か提案があればよろしくお願いします。

これまでのところ、このスタックオーバーフローの応答で説明されている 2 つの広範なアプローチを試しました。

オプション 1: を使用する基本的なマークダウン アプローチ\@ref(fig:chunk-label)。これにより、図のキャプションに正しい形式を持つ pdf が生成されますが、テキスト内の参照は@ref(fig:fig-margin).. スクリプトの下の画像を参照してください。

```
---
title: "Markdown example"
date: "`r Sys.Date()`"
output:
  tufte::tufte_handout:
    citation_package: natbib
link-citations: yes
---

```{r setup, include=FALSE}
library(tufte)

```

```{r fig-margin, fig.cap=("MPG vs horsepower, colored by transmission."), fig.height=3.5, fig.margin=TRUE, fig.width=3.5, message=FALSE, cache=FALSE}
library(ggplot2)
mtcars2 <- mtcars
mtcars2$am <- factor(
  mtcars$am, labels = c('automatic', 'manual')
)
ggplot(mtcars2, aes(hp, mpg, color = am)) +
  geom_point() + geom_smooth() +
  theme(legend.position = 'bottom')

```

Insert the figure reference here \@ref(fig:fig-margin).

ここにコピーされたpdfの画像がありますが、貼り付けるポイントがありません。うまくいけば、それは表示されます
画像

\@ref(fig:fig-margin)バックスラッシュを削除するなど、フォーマットで複数のバリエーションを試しましたが、役に立ちませんでした。

オプション 2: キャプションを使用する。上記のリンクの回答オプションでは、Captioner が解決策として提案され、いくつかのコードが提供されました。

このオプションを実装し、今回は正しいインライン リファレンスを取得しましたが、図 1: 図のキャプションの一部が重複していました (つまり、図 1: 図 1: MPG vs 馬力など)。
これは、キャプショナーアプローチを使用したpdfの画像です
画像

```
---
title: "Captioner example"
date: "`r Sys.Date()`"
output:
  tufte::tufte_handout:
    citation_package: natbib
link-citations: yes
---

```{r setup, include=FALSE}
library(tufte)
library(captioner)
# invalidate cache when the tufte version changes
knitr::opts_chunk$set(tidy = FALSE, cache.extra = packageVersion('tufte'))
options(htmltools.dir.version = FALSE)

table_captions <- captioner::captioner()
figure_captions <- captioner::captioner(prefix="Figure.")
fig.cap <- captioner::captioner()

t.ref <- function(label){
  stringr::str_extract(table_captions(label), "[^:]*")
}

f.ref <- function(label){
  stringr::str_extract(figure_captions(label), "[^:]*")
}



```


```{r fig-margin, fig.cap=figure_captions("fig_one", "MPG vs horsepower, colored by transmission."), fig.height=3.5, fig.margin=TRUE, fig.width=3.5, message=FALSE, cache=FALSE}
library(ggplot2)
mtcars2 <- mtcars
mtcars2$am <- factor(
  mtcars$am, labels = c('automatic', 'manual')
)
ggplot(mtcars2, aes(hp, mpg, color = am)) +
  geom_point() + geom_smooth() +
  theme(legend.position = 'bottom')

```

Insert experiment ref here `r f.ref("fig_one")`.

私の好みは、可能であれば基本的なマークダウンアプローチのみを使用することですが、それを行う唯一の方法がキャプショナーを使用することである場合、誰かが重複を取り除くことについてアドバイスできれば問題ありません (私は定義された関数にいくつかの調整を試みましたセットアップ チャンクに含まれていましたが、どれも機能しませんでした。

アドバイスをいただければ幸いです。プラン B はもちろん、手動で行うだけです。

前もって感謝します。

4

2 に答える 2

2

タフト配布資料 (PDF) で同じ問題に遭遇したので、上でリンクしたSO スレッドの rmarkdown の例 #1 で提案されているように、@ 記号なし\refで中かっこを試してみました。機能しているようです。{ }

\ref{fig:my_fig}
于 2020-07-13T14:55:10.350 に答える