次のテンプレートを使用しています
_---
title: "Nice try buddy"
author: "SpaceMan"
date: "13 December 2057"
output:
bookdown::pdf_document2
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage[table]{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
---
---
references:
- id: fenner2012a
title: One-click science marketing
container-title: Nature Materials
volume: 11
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Title
\begin{equation}
f\left(k\right)=\binom{n}{k}p^k\left(1-p\right)^{n-k} \label{eq:binom}
\end{equation}
You may refer to it using `\@ref(eq:binom)`, e.g., see Equation \@ref(eq:binom).
and not a Nice citation! @fenner2012a
## Including Tables
You can also embed tables, for example: \@ref(tab:tw)
```{r tw, echo=FALSE}
mytable
```
## References
_
ここで、mytable
はRセッションに格納され、次のように生成されます
_mytable <- head(cars) %>% kable(format = "latex",
booktabs = T,
caption = "Demo Table",
escape = F) %>%
kable_styling(latex_options = 'HOLD_position')
_
さて、これは動作するはずですが、私が使用してドキュメントを編むとき
rmarkdown::render('C:\\Users\\john\\Documents\\bbv.Rmd')
cross-reference
_がありません! _??
_のみが表示されます#tab
_があります-それを取り除く方法は?これらの問題を修正する方法はありますか?ありがとう!
編集:奇妙な_#tab
_が再起動後に消えました。
問題は、Rチャンクの外でそれを使用することにより、kable
の意図に反して作業していることです。
kable()
関数は、プレフィックスtab:
にチャンクラベルを加えたテーブル環境のラベルを自動的に生成します。
https://bookdown.org/yihui/bookdown/tables.html
したがって、次の回避策は間違いなくハッキー側にあります。ファイルfoo.Rmd
を
---
output:
bookdown::pdf_document2:
toc: no
header-includes:
- \usepackage{float}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Including Tables
You can also embed tables, for example: \@ref(tab:tw)
```{r tw, echo=FALSE}
mytable
```
You can also embed tables, for example: \@ref(tab:tw2)
```{r tw2, echo=FALSE}
mytable2
```
Referencing images is easier: \@ref(fig:plt)
```{r plt, echo=FALSE, fig.cap = 'hello', fig.height=3}
myplot
```
このファイルを2番目のファイルfoo.R
で処理できます。
library(knitr)
library(kableExtra)
# add the label to the options that would normally be populated from the chunk options
opts_current$append(list(label = "tw"))
mytable <- head(cars) %>% kable(format = "latex",
booktabs = T,
caption = "Demo Table",
escape = F) %>%
kable_styling(latex_options = 'HOLD_position')
opts_current$restore()
opts_current$append(list(label = "tw2"))
mytable2 <- tail(cars) %>% kable(format = "latex",
booktabs = T,
caption = "Demo Table",
escape = F) %>%
kable_styling(latex_options = 'HOLD_position')
opts_current$restore()
myplot <- ggplot(cars, aes(x = dist, y = speed)) + geom_point()
rmarkdown::render("foo.Rmd")
原則として、これらのコマンドはRプロンプトでも実行できますが、直接プロンプトを使用しないようにしています。ところで、私はあなたのコードで(#tab)
出力を取得しません。
ただし、kable
の動作に逆らわないほうが理にかなっていると思います。プレゼンテーションのデータ操作を分離することが理にかなっていることを理解できます。ただし、テーブルの作成は、私の観点からはプレゼンテーションです。したがって、外部でテーブルを作成する代わりに、外部でデータを作成するだけです。これを具体的にするために、ファイルbar.Rmd
を使用します。
---
output:
bookdown::pdf_document2:
toc: no
header-includes:
- \usepackage{float}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(kableExtra)
```
## Including Tables
You can also embed tables, for example: \@ref(tab:tw)
```{r tw, echo=FALSE}
mydata %>% kable(format = "latex",
booktabs = T,
caption = "Demo Table",
escape = F) %>%
kable_styling(latex_options = 'HOLD_position')
```
ファイルと一緒にbar.R
:
# insert data processing here
mydata <- head(cars)
rmarkdown::render("bar.Rmd")
これにより、同じ出力が得られ、データ処理は(最初に!)プレゼンテーションから分離されます。