當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R RweaveLatex Sweave 的 R/LaTeX 驅動程序


R語言 RweaveLatex 位於 utils 包(package)。

說明

一名司機Sweave翻譯的R“running them” 在 LaTeX 文件中的代碼塊,即parse()eval()每個。

用法

RweaveLatex()

RweaveLatexSetup(file, syntax, output = NULL, quiet = FALSE,
                 debug = FALSE, stylepath, ...)

參數

file

Sweave 源文件的名稱。參見 Sweave 對應參數的說明。

syntax

SweaveSyntax 的對象。

output

輸出文件的名稱。默認是刪除擴展名‘.nw', '.Rnw' 或者 '.Snw'並添加擴展名'.tex’。中的任何目錄路徑file也被刪除,以便在當前工作目錄中創建輸出。

quiet

如果TRUE,所有進度消息都會被抑製。

debug

如果 TRUE ,所有代碼塊的輸入和輸出都會複製到控製台。

stylepath

查看具體信息'。

...

“支持的選項”中列出的選項的命名值。

細節

生成的LaTeX 文件需要包含行‘⁠\usepackage{Sweave}⁠’,如果 Sweave 源文件中不存在(可能在注釋中),則由RweaveLatexdriver 作為‘之前的最後一行⁠\begin{文檔}⁠' 陳述。如果stylepath = TRUE, hard-coded 文件路徑‘Sweave.sty' 在裏麵R安裝設置為Sweave。 hard-coded 路徑使得 LaTeX 文件的可移植性較差,但避免了安裝當前版本的問題Sweave.sty’到 TeX 輸入路徑中的某個位置。但是,如果 TeX 包含空格(在 Windows 下通常如此)或 TeX 特殊字符,則 TeX 可能無法處理 hard-coded 路徑。

默認為stylepath現在從環境變量中獲取SWEAVE_STYLEPATH_DEFAULT,或者是FALSE它未設置或為空。如果設置的話,它應該是準確的TRUE或者FALSE:任何其他值均視為FALSE.

對於經常使用 Sweave 的用戶來說,最簡單的方法是確保‘Sweave.sty' 在 TeX 輸入路徑中添加 'R_HOME/分享/texmf” 作為“texmf 樹”(“MiKTeX 設置”實用程序中的“根目錄”)。

默認情況下, 'Sweave.sty'加載'⁠圖形x⁠’ LaTeX 包並將所有包含圖形的寬度設置為:
'⁠\setkeys{杜鬆子酒}{width=0.8\textwidth}⁠’。

此設置(定義在‘⁠圖形x⁠’包)影響傳遞給‘的寬度尺寸選項⁠\includegraphics{}⁠每個繪圖文件的指令,反過來會影響繪圖文件的縮放比例,因為它們將出現在最終文檔中。

因此,例如,您可以設置width=3在您的圖形塊中,生成的圖形文件的寬度將設置為 3 英寸。但是,最終文檔中圖形的寬度將設置為“⁠0.8\文本寬度⁠’並且高度尺寸將相應地縮放。最終文檔中的字體和符號將采用類似的比例。

您可以通過包含‘來調整默認值⁠\setkeys{杜鬆子酒}{寬度=...}⁠' 指令在你的'.Rnw' 之後的文件⁠\begin{文檔}⁠’指令並改變width根據您的喜好選擇值,使用標準 LaTeX 測量值。

如果您希望完全覆蓋此默認行為,您可以添加“⁠\usepackage[nogin]{Sweave}⁠’序言中的指令。在這種情況下,不會將任何大小/縮放選項傳遞給‘⁠\includegraphics{}⁠’指令和heightwidth選項將決定運行時生成的圖形文件大小和最終文檔中圖形的大小。

'Sweave.sty” 也支持“⁠[nofontenc]⁠' 選項,它會跳過默認包含的 '⁠\usepackage[T1]{fontenc}⁠’ 用於 pdfTeX 處理。

它還支持‘⁠[inconsolata]⁠' 選項,渲染等寬文本inconsolata,默認使用的字體R幫助頁麵。

使用花哨的引號(參見sQuote) 設置時可能會出現問題R以非 UTF-8 語言環境輸出(請注意,自 2018 年起 pdfTeX 默認采用 UTF-8)。任意設定options(useFancyQuotes = FALSE)或安排 LaTeX 了解所使用的編碼並確保使用包含定向引號的打字機字體。

某些 LaTeX 圖形驅動程序不包含‘⁠.png⁠' 或者 '⁠.jpg⁠' 在已知擴展列表中。要啟用它們,請添加類似“⁠\DeclareGraphicsExtensions{.png,.pdf,.jpg}⁠’到文檔的序言中或檢查圖形驅動程序的行為。當兩個pdfpngTRUE這兩個文件都將由Sweave,以及它們在‘中的順序⁠聲明圖形擴展⁠' 列表決定了將使用哪個pdflatex.

支持的選項

RweaveLatex 支持以下代碼塊選項(括號中的值顯示默認值)。當從Sweave... 傳遞時,字符串值應加引號,但在代碼塊的標頭中使用時不應加引號。

引擎:

字符串("R")。僅處理engine等於"R""S"的塊。

回聲:

邏輯(TRUE)。包括R輸出文件中的代碼?

保留來源:

邏輯(TRUE)。當回顯時,如果TRUE原始源被複製到文件中。否則,將回顯已解析的源。

評估:

邏輯(TRUE)。如果 FALSE ,則不會評估代碼塊,因此不會生成文本或圖形輸出。

結果:

字符串("verbatim")。如果"verbatim",輸出R命令包含在 verbatim-like 中⁠S輸出⁠' 環境。如果"tex",輸出被視為已經正確的 LaTeX 標記並按原樣包含。如果"hide"那麽所有輸出都被完全抑製(但在編織期間執行的代碼)。值可以縮寫。

打印:

邏輯(FALSE)。如果 TRUE ,這會強製所有表達式的auto-printing。

學期:

邏輯(TRUE)。如果TRUE,值的可見性模擬了交互式R會話:不打印賦值的值,打印單個對象的值。如果FALSE,輸出僅來自顯式print或類似的陳述。

分裂:

邏輯(FALSE)。如果是 TRUE ,則文本輸出將寫入每個代碼塊的單獨文件中。

條帶.白色:

字符串("true")。如果 "true" ,則刪除輸出開頭和結尾的空白行。如果 "all" ,則所有空白行將從輸出中刪除。如果"false"則保留空行。

“空行”是空行或僅包含空白(空格和製表符)的行。

請注意,代碼塊中的空行通常會在輸出時生成提示字符串而不是空行。

字首:

邏輯(TRUE)。如果 TRUE 生成的圖形和輸出文件名都具有 prefix.string 選項給出的公共前綴:否則隻有未標記的塊使用該前綴。

前綴.字符串:

一個字符串,默認是源文件的名稱(不帶擴展名)。請注意,它用作文件名的一部分,因此需要可移植。

包括:

邏輯(TRUE),表示輸入語句是否用於文本輸出(ifsplit = TRUE) 和 '⁠\包括圖形⁠’數字報表應該自動生成。使用include = FALSE輸出是否應出現在與代碼塊不同的位置(通過手動放置輸入行)。

如圖:

邏輯(FALSE),指示代碼塊是否產生圖形輸出。請注意,每個代碼塊隻能以這種方式處理一個圖形。圖形塊的標簽用作文件名的一部分,因此最好是字母數字。

每股收益:

邏輯(FALSE),指示是否應生成 EPS 數據。如果 fig = FALSE 則忽略。

pdf:

邏輯 ( TRUE ),指示是否應生成 PDF 數字。如果 fig = FALSE 則忽略。

pdf.版本、pdf.編碼、pdf.壓縮:

傳遞給pdf來設置版本、編碼和壓縮(或不設置)。默認值取自pdf.options()

PNG:

邏輯 ( FALSE ),指示是否應生成 PNG 圖形。如果 fig = FALSE 則忽略。僅在 中可用。

圖片:

邏輯(FALSE),指示是否應生成 JPEG 圖形。如果 fig = FALSE 則忽略。僅在 中可用。

GR設備:

字符 (NULL):請參閱“自定義圖形設備”部分。如果 fig = FALSE 則忽略。僅在 中可用。

寬度:

numeric (6),以英寸為單位的數字寬度。查看具體信息'。

高度:

numeric (6),數字高度(以英寸為單位)。查看具體信息'。

解決:

數字 (300),分辨率以每英寸像素為單位:用於 PNG 和 JPEG 圖形。請注意,默認值相當高,適合高質量繪圖。像 100 這樣的東西是包插圖的更好選擇。

索引:

邏輯(FALSE)。編寫索引文件以將輸入行號鏈接到輸出行號。

僅無花果:

邏輯(FALSE)。默認情況下,每個圖形塊運行一次,然後針對每種選定的圖形類型重新運行。這將為第一個圖形塊打開默認圖形設備,並使用該設備對所有後續塊進行第一次評估。如果此選項為 true,則僅針對每種選定的圖形類型運行圖形塊,並為其打開然後關閉新的圖形設備。

此外,用戶可以在單個代碼部分的標題中或在“⁠\SweaveOpts{}⁠’文檔中的行。對於未知選項,其類型是在第一次使用時設置的。

定製圖形設備

如果為 figeval 都為 true 的代碼塊提供了選項 grdevice,則進行以下調用

  get(options$grdevice, envir = .GlobalEnv)(name=, width=,
                                            height=, options)

這應該打開一個圖形設備。然後評估該塊的代碼並調用dev.off。通常,給定名稱的函數已在 Sweave 文檔中較早定義,例如

<<results=hide>>=
my.Swd <- function(name, width, height, ...)
  grDevices::png(filename = paste(name, "png", sep = "."),
                 width = width, height = height, res = 100,
                 units = "in", type = "quartz", bg = "transparent")
@

或者用於R>= 3.4.0,如果該函數存在於包中(而不是.GlobalEnv) 可以通過設置來使用grdevice = "pkg::my.Swd"(或用‘⁠:::⁠' 代替 '⁠::⁠’如果該函數未導出)。

目前每個塊隻能使用一個自定義設備,但不同的塊可以使用不同的設備。

dev.off 的替換可以作為帶有後綴 .off 的函數提供,例如分別為 my.Swd.off()pkg::my.Swd.off()

鉤子函數

在評估每個代碼塊之前,可以執行零個或多個鉤子函數。如果設置了getOption("SweaveHooks"),則它被視為鉤子函數的命名列表。對於代碼塊( echoprint 等)的每個邏輯選項,可以指定一個鉤子,當且僅當相應選項為 TRUE 時才執行該鉤子。鉤子必須是 getOption("SweaveHooks") 返回的列表的命名元素,並且是不帶參數的函數。例如,如果選項 "SweaveHooks" 定義為 list(fig = foo) ,並且 foo 是一個函數,那麽它將在每個圖形塊中的代碼之前執行。這對於設置一係列圖形塊中圖形參數的默認值特別有用。

請注意,用戶可以自由定義新的 Sweave 邏輯選項並將任意鉤子與其關聯。例如,可以為名為 clean 的新選項定義一個鉤子函數,用於刪除工作區中的所有對象。然後用 clean = TRUE 指定的所有代碼塊將開始在空工作區上運行。

作者

Friedrich Leisch and R-core

也可以看看

Sweave User Manual”,utils 包中的小插圖。

Sweave , Rtangle

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 R/LaTeX Driver for Sweave。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。