gpt4 book ai didi

r - 让 Emacs 在编织后自动对您的 Rnw 文件进行 latex 处理

转载 作者:行者123 更新时间:2023-12-01 03:48:33 25 4
gpt4 key购买 nike

我想在编织 .Rnw 后开始使用 LaTeX文件。元代码应该是这样的:

(defun knit ()
(interactive)
(setq rproc (ess-get-process ess-current-process-name))
(setq c "knit('foo.rnw')\n")
(process-send-string rproc c)
;; Wait for ESS to finish
(shell-command-to-string "cd foo/path & pdflatex foo"))

主要问题是让 Emacs 等待劣质缓冲区完成编织,然后才开始 latex 。我发现了几个有趣的函数: (ess-wait-for-process ...) (inferior-ess-mark-as-busy ...)`,这可能有效,但我无法理解如何。

请注意 (shell-command-to-string ...只是说明性的。最后的选择可能是:
(TeX-command "LaTeX" 'rnw-to-tex-ext -1))
knit2pdf()可能是一条不同的道路,但我将失去 AUCTeX 的好处。

PS:我的问题被SE机器人认为是“主观的,可能会被关闭”!?

最佳答案

我用 texi2pdf并在编织后让 R 做这件事,但这显然等同于 knit2pdf .我想知道你是否可以使用 systemknit 之后从 R 中调用您想要的任何 tex 命令命令,类似于我如何使用 texi2pdf .

我不是一个 emacs 专家,但它的值(value)在于我在 .emacs 中的功能。文件。

; use knitr (was Sweave) script as compile function for Rnw files
(defun ess-swv-SweaveSh ()
"Use knitr script to knit an Rnw file and create a pdf."
(interactive)
(let
((compilation-buffer-name-function (function (lambda(ign)(concat "*" (buffer-file-name) "*")))))
(compile (concat "Rscript -e \".n <- '" (buffer-file-name) "'; library(knitr); knit(.n); library(tools); texi2pdf(sub('Rnw$','tex',.n))\"" ))
)
)

关于r - 让 Emacs 在编织后自动对您的 Rnw 文件进行 latex 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24894286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com