quarto 教程 3:Authoring

寫在前面

學(xué)習(xí)一個軟件最好的方法就是啃它的官方文檔。本著自己學(xué)習(xí)拂铡、分享他人的態(tài)度,分享官方文檔的中文教程葱绒。軟件可能隨時更新,建議配合官方文檔一起閱讀斗锭。
1.quarto 教程 1:Hello, Quarto
2.quarto 教程 2:Computations


::: block-1

目錄

  • 1 概述
  • 2 輸出格式
  • 3 渲染
  • 4 部分
  • 5 方程
  • 6 引文
  • 7 交叉引用
  • 8 標(biāo)注
  • 9 文章布局
  • 10 發(fā)布
  • 11 了解更多
    :::

官網(wǎng)教程:https://quarto.org/docs/get-started/authoring/rstudio.html

1 概述

在本教程中地淀,我們將向您展示如何在 RStudio 中創(chuàng)作 Quarto 文檔。特別是岖是,我們將討論您可以使用相同源代碼生成的各種文檔格式帮毁,并向您展示如何添加目錄实苞、方程式、引文等組件烈疚。RStudio 中的可視化 Markdown 編輯器使許多此類任務(wù)變得更加容易我們將在本教程中重點介紹它的用途黔牵,但請注意,也可以在源代碼編輯器中完成這些任務(wù)爷肝。

如果您想在自己的環(huán)境中逐步進(jìn)行操作猾浦,請確保您已安裝最新版本的 RStudio (v2023.06)。

2 輸出格式

Quarto 支持將筆記本渲染為數(shù)十種不同的輸出格式灯抛。默認(rèn)情況下金赦,使用 html 格式,但您可以在文檔選項中指定替代格式(或多個格式)对嚼。

格式選項

您可以在創(chuàng)建新文檔時選擇要渲染 Quarto 文檔的格式夹抗。要創(chuàng)建新文檔,請轉(zhuǎn)到 File > New File > Quarto Document… 或者纵竖,使用命令選項板(可通過 Ctrl+Shift+P 訪問)漠烧,搜索 Create a new Quarto document 并按回車鍵。

Title 字段中靡砌,為文檔指定一個標(biāo)題(例如已脓,下面的屏幕截圖顯示 “Housing Prices”),并將您的姓名添加到 Author 字段中乏奥。接下來摆舟,您將為文檔選擇輸出格式。默認(rèn)情況下邓了,RStudio 建議使用 HTML 作為輸出恨诱,我們暫時保留該默認(rèn)值。

將使用以下 YAML 創(chuàng)建一個新文檔骗炉。

---
title: "Housing Prices"
author: "Mine ?etinkaya-Rundel"
---

請注意照宝,我們的格式選擇 (HTML) 甚至沒有反映在 YAML 中,因為它是 Quarto 文檔的默認(rèn)輸出格式句葵。但是厕鹃,您可以直接編輯 YAML 來更改輸出格式,例如轉(zhuǎn)換為 PDF (pdf) 或 MS Word (docx)乍丈。將 format: pdf 添加到文檔的 YAML 中剂碴,如下所示。

---
title: "Housing Prices"
author: "Mine ?etinkaya-Rundel"
format: pdf
---

不幸的是轻专,該文檔沒有內(nèi)容忆矛,因此渲染它不會產(chǎn)生非常有趣的輸出。為了更容易地演示我們想要在本教程中強(qiáng)調(diào)的所有功能,讓我們關(guān)閉這個空文檔并從其中包含一點內(nèi)容的文檔開始催训。如果您想在自己的環(huán)境中逐步進(jìn)行操作洽议,請下載下面的 Quarto 文檔 (.qmd) 并在 RStudio 中打開它。

Download authoring.qmd: https://quarto.org/docs/get-started/authoring/_authoring.qmd

為了創(chuàng)建 PDFs漫拭,您需要安裝最新的 LaTeX 發(fā)行版亚兄。我們推薦使用 TinyTeX(它基于 TexLive),您可以使用以下命令安裝它:

quarto install tinytex

有關(guān)使用其他 LaTeX 發(fā)行版和 PDF 編譯引擎的詳細(xì)信息采驻,請參閱有關(guān) PDF Engines 的文章审胚。

設(shè)置完 LaTeX 后,單擊 Render(或使用鍵盤快捷鍵 ??K)挑宠。我們建議還選中 Render on Save 框菲盾,以實時預(yù)覽您的更改。如下所示各淀,您應(yīng)該在 RStudio 的查看器中看到渲染的 PDF懒鉴。

接下來,讓我們向 YAML 添加一個選項碎浇,例如將行號添加到代碼塊中(code-line-numbers:true)临谱。將此選項添加到文檔的 YAML 中,如下所示奴璃,注意縮進(jìn)方案悉默。在 format: 中我們的格式選擇 pdf 是縮進(jìn)的(有兩個空格),后面跟著 : 表示將指定該格式的更多選項苟穆。在下一行中抄课,進(jìn)一步縮進(jìn)兩個空格,我們添加 code-line-numbers: true雳旅。

---
title: "Housing Prices"
author: "Mine ?etinkaya-Rundel"
format:
  pdf:
    code-line-numbers: true
---

如果您之前選中了 Render on Save跟磨,則只需在進(jìn)行此更改后保存文檔即可進(jìn)行實時預(yù)覽。否則呈現(xiàn)文檔以查看反映的更新攒盈,包括如下所示的目錄抵拘。

revealjs 是一個令人難以置信的令人興奮的格式選項,我們不會在本教程中詳細(xì)介紹型豁。是的僵蛛,您也可以使用 Quarto 進(jìn)行演示文稿!事實上迎变,Quarto 支持多種用于創(chuàng)建演示文稿的格式充尉,包括用于 HTML 幻燈片的 revealjs、用于 PowerPoint 的 pptx 以及用于 LaTeX/PDF 的 beamer衣形。Presentations 文章詳細(xì)介紹了如何使用 Quarto 創(chuàng)建幻燈片驼侠。

多種格式

您創(chuàng)建的某些文檔只有一種輸出格式,但在許多情況下,需要支持多種格式泪电。讓我們將 htmldocx 格式添加到我們的文檔中,并修改特定于每種格式的一些選項纪铺。

---
title: "Housing Prices"
author: "Mine ?etinkaya-Rundel"
highlight-style: pygments
format:
  html: 
    code-fold: true
    html-math-method: katex
  pdf:
    geometry: 
      - top=30mm
      - left=30mm
  docx: default
---

這里有很多東西值得一看相速!讓我們把它分解一下。前兩行是通用文檔元數(shù)據(jù)鲜锚,與輸出格式根本無關(guān)突诬。

---
title: "Housing Prices"
author: "Mine ?etinkaya-Rundel"
---

下一行是適用于所有格式的文檔格式選項,這就是它在根級別指定的原因芜繁。

---
highlight-style: pygments
---

接下來旺隙,我們有 format 選項,我們在其中提供特定于格式的選項骏令。

---
format:
  html: 
    code-fold: true
    html-math-method: katex
  pdf:
    geometry: 
      - top=30mm
      - left=30mm
  docx: default
---

htmlpdf 格式各自提供一兩個選項蔬捷。例如,對于 HTML 輸出榔袋,我們希望用戶能夠控制是否顯示或隱藏代碼 (code-fold: true) 并使用 katex 來處理數(shù)學(xué)文本周拐。對于 PDF,我們定義了一些邊距凰兑。 docx 格式有點不同 -- 它指定 docx: default妥粟。這表明我們只想使用該格式的所有默認(rèn)選項。

3 渲染

單擊 RStudio 中的 Render 按鈕(或使用鍵盤快捷鍵 ??K)會將文檔渲染為 YAML 中列出的第一種格式吏够。

請注意勾给,Render 按鈕還有一個下拉菜單,使您能夠渲染為 YAML 前面列出的任何格式:

如果您想渲染為所有格式锅知,可以使用 quarto 包來實現(xiàn)播急,它為 Quarto CLI 提供了 R 接口。例如喉镰,要渲染當(dāng)前文檔旅择,請使用 quarto::quarto_render()。您還可以指定要呈現(xiàn)的文檔的名稱以及輸出格式侣姆。

quarto::quarto_render(
  "authoring.qmd", 
  output_format = c("pdf", "html", "docx")
)

結(jié)果生真,您將看到三個新文件出現(xiàn)在“Files”窗格中:

  • authoring.docx
  • authoring.html
  • authoring.pdf

4 部分

您可以使用目錄和/或章節(jié)編號來使讀者更輕松地瀏覽您的文檔。通過將 toc 和/或 number-sections 選項添加到文檔選項來執(zhí)行此操作捺宗。請注意柱蟀,這些選項通常在根級別指定,因為它們在所有格式之間共享蚜厉。

---
title: "Housing Prices"
author: "Mine ?etinkaya-Rundel"
toc: true
number-sections: true
highlight-style: pygments
format:
  html: 
    code-fold: true
    html-math-method: katex
  pdf:
    geometry: 
      - top=30mm
      - left=30mm
  docx: default
---

這是該文檔呈現(xiàn)為 HTML 時的樣子长已。

有很多選項可用于控制目錄和章節(jié)編號的行為方式。有關(guān)更多詳細(xì)信息,請參閱輸出格式文檔(例如 HTML术瓮、PDF康聂、MS Word)。

5 方程

如果您使用可視化編輯器模式胞四,則可以使用 Insert Anything 工具將 LaTeX 方程添加到 RStudio 中的 Quarto 文檔中恬汁。您可以在空塊的開頭使用 / 或在其他任何地方使用 Cmd+/ 來訪問它。

顯示方程(在新行中)用 $$...$$ 分隔辜伟,而內(nèi)聯(lián)方程用 $...$ 分隔氓侧。添加以下內(nèi)容作為文檔中的顯示數(shù)學(xué)。

$$
price = \hat{\beta}_0 + \hat{\beta}_1 \times area + \epsilon
$$

當(dāng)您在編輯器中鍵入教程時导狡,RStudio 會顯示教程的渲染版本约巷。有關(guān)更多詳細(xì)信息,請參閱有關(guān) markdown equations 的文檔旱捧。

6 引文

Insert Anything 工具還可用于在文檔中插入引文独郎。

在下一個窗口中,您可以通過各種來源插入引文廊佩,包括您的文檔書目遮咖、Zotero 個人或團(tuán)隊 libraries憎茂、DOI (Document Object Identifier) references 以及 Crossref根吁、DataCite 或 PubMed 的搜索譬涡。您可以在此處找到有關(guān)使用可視化編輯器引用的更多信息。

選擇左側(cè)的 From DOI料皇,然后將 DOI 10.1093/comjnl/27.2.97 復(fù)制并粘貼到搜索欄中谓松,然后點擊 Search。然后践剂,選擇找到的 reference鬼譬,并將其 insert 到您的文檔中。

如果這是您添加到文檔中的第一個 citation逊脯,RStudio 將自動為您創(chuàng)建一個參考書目文件优质。默認(rèn)情況下,該文件名為 references.bib军洼,RStudio 還會將 bibliography: references.bib 添加到文檔的 YAML 元數(shù)據(jù)中巩螃。

請注意,參考書目中的項目是使用 @citeid 語法引用的匕争。將以下文本添加到您的文檔中避乏。

We're going to do this analysis using literate programming [@knuth1984].

參考文獻(xiàn)將包含在文檔的末尾,因此我們在筆記本底部包含一個 ## References甘桑。您還可以通過單擊三個點 (...) 來編輯其屬性拍皮,將 .unnumbered 類添加到此部分歹叮。

這是該文檔渲染后的樣子(刪除了中間部分以突出顯示相關(guān)部分)。

@ 引用語法非常靈活铆帽,包括對前綴咆耿、后綴、定位符和文本內(nèi)引用的支持爹橱。請參閱有關(guān) Citations and Footnotes 的文檔以了解更多信息票灰。

7 交叉引用

交叉引用通過提供數(shù)字、表格宅荤、方程和章節(jié)的編號參考和超鏈接,使讀者能夠更輕松地瀏覽文檔浸策》爰可交叉引用的實體通常需要標(biāo)簽(唯一標(biāo)識符)和標(biāo)題。

例如庸汗,要向之前插入的方程添加標(biāo)簽惫确,請單擊三個點來編輯其屬性并使用建議的格式(以 #eq- 開頭)來標(biāo)記方程。

然后蚯舱,使用可視化編輯器中的 Insert Anything 工具添加交叉引用改化。您可以添加諸如 "We can fit a simple linear regression model of the form shown in" 之類的句子來將交叉引用置于上下文中,然后將引用添加到該句子的末尾枉昏。

在 Insert Cross Reference 菜單中陈肛,導(dǎo)航到左側(cè)所需的交叉引用實體,然后選擇之前標(biāo)記的方程兄裂。

或者句旱,開始在可視化編輯器中鍵入要引用的方程的標(biāo)簽,自動填充工具將顯示交叉引用以供選擇晰奖。

下面我們使用您一直使用的文檔中的片段來說明交叉引用各種類型的實體谈撒。

We present the results of exploratory data analysis in @sec-eda and the regression model in @sec-model.


@fig-scatterplot displays the relationship between these two variables in a scatterplot.


@tbl-stats displays basic summary statistics for these two variables.


We can fit a simple linear regression model of the form shown in @eq-slr.

該示例包括交叉引用的部分、圖形和方程匾南。下表總結(jié)了我們?nèi)绾伪磉_(dá)這些內(nèi)容啃匿。

Entity Reference Label / Caption
Section @sec-eda ID added to heading: # Exploratory data analysis {#sec-eda}
Figure @fig-scatterplot YAML options in code cell: `# label: fig-scatterplot # fig-cap: "Scatterplot of price vs. area of houses in Duke Forest"`
Table @tbl-stats YAML options in code cell: `# label: tbl-stats # tbl-cap: "Summary statistics for price and area of houses in Duke Forest"`
Equation @eq-slr At end of display equation: $$ {#eq-slr}

請參閱有 Cross References 的文章以了解更多信息,包括如何自定義標(biāo)題和參考文本(例如使用“Fig.”而不是“Figure”)蛆楞。

8 標(biāo)注

標(biāo)注是一種很好的方式溯乒,可以吸引人們對某些概念的額外關(guān)注,或者更清楚地表明某些內(nèi)容是補(bǔ)充性的或僅適用于某些場景臊岸。

標(biāo)注是具有特殊標(biāo)注屬性的 Markdown div橙数。我們可以使用 Insert Anything 工具插入標(biāo)注。

在隨后的對話框中帅戒,您可以選擇五種標(biāo)注類型之一(注釋灯帮、提示崖技、重要、注意或警告)钟哥,自定義其外觀(默認(rèn)迎献、簡單或最小)腻贰,并決定是否要顯示圖標(biāo)吁恍。

然后,嘗試在標(biāo)注框中插入以下文本播演。

This is a pretty incomplete analysis, but hopefully the document provides a good overview of some of the authoring features of Quarto!

這是可視化編輯器中標(biāo)注的樣子冀瓦。

這是輸出文檔中渲染的標(biāo)注。

您可以在 Callouts 文檔中了解有關(guān)不同類型標(biāo)注及其外觀選項的更多信息写烤。

9 文章布局

Quarto 文章正文的默認(rèn)寬度約為 700 像素翼闽。選擇此寬度是為了優(yōu)化可讀性。這通常會在文檔頁邊距中留下一些可用空間洲炊,您可以通過多種方式利用該空間感局。

我們可以使用 column: page-right 單元選項來指示我們希望圖形占據(jù)屏幕的整個寬度,并帶有一些插圖暂衡。繼續(xù)并將此代碼塊選項添加到標(biāo)記為 fig-histogram 的代碼塊中询微。

#| label: fig-histogram
#| fig-cap: "Histograms of individual variables"
#| fig-subcap:
#|   - "Histogram of `price`s"
#|   - "Histogram of `area`s" 
#| layout-ncol: 2
#| column: page-right

以下是文檔的相關(guān)部分渲染后的樣子。

您可以在頁邊空白處找到引文狂巢、腳注和旁白撑毛。您還可以為圖形、表格或其他內(nèi)容定義自定義列跨度唧领。有關(guān)更多詳細(xì)信息代态,請參閱有關(guān) Article Layout 的文檔。

10 發(fā)布

將文檔渲染為 HTML 后疹吃,您只需單擊編輯器工具欄或預(yù)覽窗口上的 Publish 按鈕即可將其發(fā)布到 RPubs(RStudio 的一項免費服務(wù)蹦疑,用于在網(wǎng)絡(luò)上共享文檔)∪唬或者歉摧,您可以使用 quarto::quarto_publish_doc() 函數(shù)。

quarto::quarto_publish_doc(
  "authoring.qmd", 
  server = "rpubs.com"
  )

其他可能的發(fā)布選項包括 RStudio Connect 和 ShinyApps 以及 GitHub Pages腔呜、Netlify 等叁温。Publishing HTML 文章更詳細(xì)地概述了您的發(fā)布選項。

如果您按照本教程的步驟進(jìn)行操作核畴,那么您現(xiàn)在應(yīng)該擁有一個 Quarto 文檔膝但,該文檔實現(xiàn)了我們所涵蓋的所有內(nèi)容。否則谤草,您可以下載下面的 computations.qmd 的完整版本跟束。

Download authoring-complete.qmd: https://quarto.org/docs/get-started/authoring/_authoring-complete.qmd

11 了解更多

您現(xiàn)在已經(jīng)了解了使用 Quarto 的基礎(chǔ)知識莺奸!一旦您能夠輕松地創(chuàng)建和自定義文檔,這里還有一些需要探索的事情:

  • Presentations 使用您為創(chuàng)建文檔所學(xué)的相同語法來創(chuàng)作 PowerPoint冀宴、Beamer 和 Revealjs 演示文稿灭贷。
  • Websites 將文檔集發(fā)布為網(wǎng)站。網(wǎng)站支持多種形式的導(dǎo)航和全文搜索略贮。
  • Blogs 創(chuàng)建一個包含“關(guān)于”頁面甚疟、靈活的帖子列表、類別逃延、RSS 源和二十多個主題的博客览妖。
  • Books 創(chuàng)建印刷版(PDF、MS Word)和在線版(HTML揽祥、ePub)格式的書籍和手稿黄痪。
  • Interactivity 包括交互式組件,以幫助讀者更深入地探索您所呈現(xiàn)的概念和數(shù)據(jù)盔然。

詳細(xì)教程請參考 quarto Guide:https://quarto.org/docs/guide/


<center><strong>結(jié)束</center></strong>

本文由mdnice多平臺發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市是嗜,隨后出現(xiàn)的幾起案子愈案,更是在濱河造成了極大的恐慌,老刑警劉巖鹅搪,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站绪,死亡現(xiàn)場離奇詭異,居然都是意外死亡丽柿,警方通過查閱死者的電腦和手機(jī)恢准,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甫题,“玉大人馁筐,你說我怎么就攤上這事∽狗牵” “怎么了敏沉?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炎码。 經(jīng)常有香客問我盟迟,道長,這世上最難降的妖魔是什么潦闲? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任攒菠,我火速辦了婚禮,結(jié)果婚禮上歉闰,老公的妹妹穿的比我還像新娘辖众。我一直安慰自己卓起,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布赵辕。 她就那樣靜靜地躺著既绩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪还惠。 梳的紋絲不亂的頭發(fā)上饲握,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機(jī)與錄音蚕键,去河邊找鬼救欧。 笑死,一個胖子當(dāng)著我的面吹牛锣光,可吹牛的內(nèi)容都是我干的笆怠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼誊爹,長吁一口氣:“原來是場噩夢啊……” “哼蹬刷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起频丘,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤办成,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后搂漠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迂卢,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年桐汤,在試婚紗的時候發(fā)現(xiàn)自己被綠了而克。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡怔毛,死狀恐怖员萍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拣度,我是刑警寧澤充活,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站蜡娶,受9級特大地震影響混卵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窖张,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一幕随、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宿接,春花似錦赘淮、人聲如沸辕录。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽走诞。三九已至,卻和暖如春蛤高,著一層夾襖步出監(jiān)牢的瞬間蚣旱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工戴陡, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留塞绿,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓恤批,卻偏偏與公主長得像异吻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子喜庞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容