自动化组织-> Rnw-> tex-> pdf

罗布·里士满

我正在尝试通过knitr自动化一些组织模式文件的处理,最后生成一个pdf。为此,我使用https://github.com/chasberry/orgmode-accessories中的ox-ravel.el 基本上,我想要组织模式导出中的另一个条目,该条目使我能够运行org-ravel-latex-noweb-pdf-dispatch的Cc Ce lq:

(org-export-define-derived-backend 'latex-noweb 'latex
  :translate-alist '((src-block . org-ravel-src-block)
                    (inline-src-block . org-ravel-inline-src-block))
  :menu-entry
  '(?l 1
      ((?q "As KnitR PDF" org-ravel-latex-noweb-pdf-dispatch))))

这似乎删除了ox-ravel中类似的派生后端的当前条目:

(org-export-define-derived-backend 'latex-noweb 'latex
  :translate-alist '((src-block . org-ravel-src-block)
                    (inline-src-block . org-ravel-inline-src-block))
  :menu-entry
  '(?l 1
      ((?r "As Rnw File" org-ravel-latex-noweb-dispatch))))

使两个条目都出现的任何提示,不胜感激。现在比较棘手的部分。我希望org-ravel-latex-noweb-pdf-dispatch首先导出为Rnw文件,方法是:

 (defun org-ravel-latex-noweb-dispatch 
  (&optional async subtreep visible-only body-only ext-plist)
"Execute menu selection. See org-export.el for meaning of ASYNC,
      SUBTREEP, VISIBLE-ONLY and BODY-ONLY."
(interactive)
(if async
    (message "No async allowed.")
  (let
      ((outfile  (org-export-output-file-name ".Rnw" subtreep)))
       (org-export-to-file 'latex-noweb 
                           outfile async subtreep visible-only 
                           body-only ext-plist))))

导出.Rnw文件后,我需要运行ess-swv-weave来导出.tex文件。然后,我想运行org-latex-compile以获得最终的pdf。以下是可能与org-latex-export-to-pdf相关的部分:

(defun org-latex-export-to-pdf
  (&optional async subtreep visible-only body-only ext-plist)
  "Export current buffer to LaTeX then process through to PDF."
  (interactive)
  (let ((outfile (org-export-output-file-name ".tex" subtreep)))
    (org-export-to-file 'latex outfile
      async subtreep visible-only body-only ext-plist
      (lambda (file) (org-latex-compile file)))))

结合以上想法以使Cc Ce lq产生所需pdf的任何帮助将不胜感激!

奥拉夫

的第一个参数org-export-define-derived-backend是新后端的名称。因为有两个同名定义'latex-noweb,所以原始定义将被覆盖。

因此,将您的后端重命名为latex-knitr,然后创建一个函数org-ravel-latex-noweb-pdf-dispatch,复制的定义org-ravel-latex-noweb-dispatch并进行修改。关键是org-export-to-file,可以带一个附加参数POST-PROCESS,您可以用来编织.Rnw文件并编译生成的tex文件:

(defun org-ravel-latex-noweb-pdf-dispatch 
    (&optional async subtreep visible-only body-only ext-plist)
  "Process org file through knitr. See org-export.el for meaning of 
SUBTREEP, VISIBLE-ONLY and BODY-ONLY."
  (interactive)
  (if async
      (message "No async allowed.")
    (let ((outfile  (org-export-output-file-name ".Rnw" subtreep)))
      (org-export-to-file
          'latex-noweb 
          outfile async subtreep visible-only 
          body-only ext-plist
          (lambda (file)
            << run `ess-swv-weave' on file >>
            (let ((texfile (concat
                            (file-name-sans-extension file)
                            ".tex")))
              (org-latex-compile texfile)))))))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel自动化:PDF导出导致弹出“打印机设置”

是否可以使用“ pandoc”将.tex文件编译为PDF?

从Inkscape到Adobe Illustrator任务的Python自动化(.svg-> .pdf-> .ai)

在.Rnw中包含RGB互动图(PDF输出)

knitr kable:RNW的PDF中的文本颜色为灰色

KnitR:是否有命令将tex文件编译为PDF?

使用tex作为pdf时保存matplotlib pyplot

Doxygen&(La)Tex-使用参数标签时无法创建PDF

扩展Symfony以自动转义.tex.twig文件的乳胶字符

使用自定义函数在Sumatra PDF阅读器中打开已编译的.rnw文件?

自动化任务以在Python中将SPSS文件(.spv)转换为PDF

导出Inkscape 1.0的.pdf_tex

如何通过命令行将.tex文件转换为PDF?

.tex或.Rnw格式的R函数帮助

如何使Adobe Acrobat XI Standard自动化以重新压缩许多PDF?

当是.tex文件时,使用Emacs自动启动命令

为tex数学模式格式化python输出?

r-关于TeX二进制文件的Rd2pdf错误

编写一个Makefile将.tex编译为.pdf

“ tex file.tex | dvips | ps2pdf”的正确格式是什么?

使用Latexsuite插件在gvim中将.tex文件默认编译为.pdf

使PDF表格在Adobe Acrobat中可填充的自动化方法?

如何在tex文件上重新运行vim自动缩进?

从终端创建预格式化的Tex文件

将使用LaTeX生成的PDF转换为.tex文件

使用Knitr编译.rnw文件后自动删除.tex文件

Cleanthesis TeX 主题不会创建 pdf

为什么 Pandoc 不将 .tex 转换为 .pdf 但可以很好地转换 .md?

编辑 .tex 文件时如何使我的自动热键脚本工作?