How to use R Markdown to make slides and write drafts? (zh-tw)
Table of Contents
今天要分享的是用 R Markdown 實現一條龍做學術工作(資料分析、寫作初稿、簡報)的理想。其實這也不是一個新想法,老早以前就有很多人有這種想法了。例如:Yongfu Liao、陳紹慶、等等,我只是記錄一下我自己的方式,讓以後的自己方便使用。
Why?
其實 R 在科學寫作跟發表這方面並不缺乏成熟的 pkg,(缺的可能是成熟的(正體)「中文」工具)。例如知名的寫輪眼跟啪啪芽:
- xaringan Presentations (Xie, 2021)
- papaja: Reproducible APA manuscripts with R Markdown (Frederik Aust & Marius Barth, 2021)
但我的理由是他們都還太複雜了一些,而且中文寫作上很難調整到可以完全仰賴 R(就算可以,到時候跟別人交流還是得輸出成 PDF 或 Word…)。
我希望有可以簡單到直接開來就可以用,可以輸出成 pdf(寫輪眼就是一款主打放棄 pdf 的工具)或 word(畢竟還要輸出來修改)。所以我還是選擇用 R beamer,雖然捨棄了即時預覽的酷炫功能(無限月讀)。也還是使用基本的 R Markdown,連 CTex Doc 都捨棄,因為從一個極簡主義的角度來想:我其實只需要 Markdwon, LaTex, BibTex 這些功能,其他的都還是要後續修改。所以產生了下面兩種作法。
R Markdown for beamer slides
- You can follow only the basic R presentation way. Do not need any other pkg, but tinytex.
- use LaTex pkg:
{ctex}
and{xeCJK}
for Chinese fonts. \setCJKmainfont
can set Chinese font (in the xeCJK or your local computer? )you want, e.g.DFKai-SB
(標楷體)。mainfont
: you can use CJK fonts or English fonts. Cuz I prefer Kai+Calibri setting, so I chooseCalibri
as the main font.theme
: you can visit the Beamer theme gallery here to select your favorite theme.output
: it is important to apply thexelatex
engine that your Chinese words can be displayed. On the other hand, if you have another R pkg such asbinb
(binb: Binb is not Beamer)(see the doc here), then thexelatex
engine will be set default.font
: Cuz the RBeamer is dependent on LaTex engine, so only 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt are available sizes. The default font size is 11pt, but using Chinese fonts, I suggest 12pt is a better choice.\alert{}
can turn a string’s color to red. (Note:black
or\textbf{}
can not be available in Chinese words).<mark> </mark>
can mark some words.- Level 3 heading: (
###
) will be a block. see below:(—) - YAML 如下(a retro ver.):(還有很多可以加的,See: The YAML Fieldguide )
---
title: "Groenen & Andries Van Der Ark (2006) and **Stout (2002)**"
# subtitle: 今天吃什麼?
author: "JW tsai"
date: \today
output:
beamer_presentation:
latex_engine: xelatex
CJKmainfont: DFKai-SB
mainfont: Calibri
fontsize: 12pt
theme: Madrid
# colortheme: default
urlcolor: blue
linkcolor: purple
# bibliography: myref.bib
# csl: apa.csl
---
- 大都會版本的 YAML 如下(a metropolis ver.): 用到了 binb: Binb is not Beamer pkg。
- 這個版本的配色真的潮很多(相比之下 beamer 那些主題用色充滿古早味)。雖然也是極簡路線,但很符合我的審美。
---
title: "Groenen & Andries Van Der Ark (2006) and **Stout (2002)**"
author: "JW"
date: \today
output:
binb::metropolis:
latex_engine: xelatex
CJKmainfont: DFKai-SB
#mainfont: Calibri
fontsize: 12pt
urlcolor: blue
linkcolor: purple
---
- 關於寫輪眼,其實我還是很想走到這一步的。但是我目前還沒掌握訂製好(包括字型、字號大小、配色、布局等等)的作法。等我確實掌握之後再追加上來。
R Markdown for academic writing
- 不用下載
rticle
,不用受限於Ctex Doc
template 的設定,直接開一個 R Markdown 貼上 yaml 就可以跑。 - 匯出 .pdf 或 .docx 都可以。PDF 版才有完整格式,WORD 版只適合作後續修改的功能。
- 工作流程:用 R Markdown 寫第一稿,匯出成 MS Word 再進行修改。(考量到社會科學裡面還是用 MS Word 交流、投稿佔多數。)
.bib
檔操作:- 在
.Rmd
檔的同個資料夾裡面,開一個.bib
的文字檔。(全程都可以在 Rstudio 完成。) - 在 Google Scholar 搜尋到文獻之後,點選
Cite
,再選擇BibTex
,整段複製下來貼到.bib
檔裡面就可以引用了! [@tsai2020]
/[@chua2020, @tsai2020]
(有框)會顯示為 (Tsai, 2020)/ (Chua, 2020; Tsai, 2020)(句末引用),而@tsai2020
(無框)會顯示為 Tsai (2020) (句中引用)。- 完成初稿之後,再做細部調整(尤其中文部分)。
- 在
apa.csl
是 APA 7/e,英文部分應該可以信賴?但可能還是要注意「第一次要引用全部作者」的部分。- 如果在意
apa.csl
的 doi 部分的話,可以換成apa-old-doi-prefix.csl
。 - YAML 如下:
---
title: "在 R Markdown 文件中使用中文"
author:
date: \today
abstract: "My abstract"
keywords: "My keywords"
geometry: margin=1in
papersize: a4
fontsize: 12pt
indent: true
linestretch: 1.5
output:
pdf_document:
latex_engine: xelatex
fig_caption: yes
number_sections: yes
df_print: kable
word_document:
CJKmainfont: DFKai-SB
mainfont: Calibri
bibliography: myref.bib
csl: apa.csl #apa-old-doi-prefix.csl
---
初稿的參考架構如下(R markdown):
# Questions
# Lit review
# The value (Theoritical model)
# Design (Stats model)
# Data
# Method
# Answers
# Defence (AD)
# limit
\newpage
# Ref
- 其中,從提出問題(Questions)開始到找尋既有的先行研究(Lit review)這都沒問題。Niche 就是本研究(current study)提出的待驗證解決方案或切入理論,是過往研究裡面沒有的創新突破的作法。到這邊是一般 Intro 的部分。
- 接著是 Method,把原本的構想化為研究設計,進行資料搜集與分析。
- Answers = Results,結果的報表跟解讀,回答一開始提出的問題。
- Defence = Discussion,回顧整個研究並提出辯護。
- Reco and lim 建議與限制。
\newpage # Ref
這是開新的一頁來放 Ref 的內容。自動生成。
Re:
引用一段 Xie 在 xaringan Presentations 指導手冊裡面的話:
The main reason I stopped using LateX Beamer slides was because of its popularity: when you attend academic conference, you see Beamer slides everywhere. — Xie
但我覺得在人文社會科學裡面,比較少有這種情況。(除了少數計量/計算領域的簡報會出現 beamer 風格以外,絕大部分都是 PPT 吧)。