gpt4 book ai didi

emacs - 在 org 模式代码块导出中显示困惑的文件名

转载 作者:行者123 更新时间:2023-12-01 13:36:21 25 4
gpt4 key购买 nike

我正在 Emacs org 模式下进行文字编程。当我将 Latex 导出为 pdf 时,我希望代码纠缠在一起的文件的名称由每个代码块显示。我在 manual 中找不到合适的 header 参数.

这是我的组织文件:

A piece of Python code:
#+BEGIN_SRC python :tangle pythontest.py
print("hello")
#+END_SRC

这是我的 .emacs:

(org-babel-do-load-languages
'org-babel-load-languages
'((python . t)))

这是pdf导出部分的截图,上面有文字: Latex pdf output

最佳答案

有几个选项都需要您进行一些黑客攻击。这两个示例展示了如何使用过滤器修改 src block 的导出。

http://kitchingroup.cheme.cmu.edu/blog/2014/09/22/Showing-what-data-went-into-a-code-block-on-export/

http://kitchingroup.cheme.cmu.edu/blog/2013/09/30/Attaching-code-blocks-to-a-pdf-file-during-export/

它们对我来说有点笨重。另一种方法是使用像这样的预处理 Hook ,在导出之前修改组织文件的临时副本:

(defun add-tangled-name (backend)
(let ((src-blocks (org-element-map (org-element-parse-buffer) 'src-block #'identity)))
(setq src-blocks (nreverse src-blocks))
(loop for src in src-blocks
do
(goto-char (org-element-property :begin src))
(let ((tangled-name (cdr (assoc :tangle (nth 2 (org-babel-get-src-block-info))))))
(insert (format "=Tangle: %s=\n" tangled-name))))))

(let ((org-export-before-processing-hook '(add-tangled-name))
(org-latex-pdf-process '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
(async nil)
(subtreep t)
(visible-only nil)
(body-only nil)
(ext-plist '()))
(org-open-file (org-latex-export-to-pdf nil t)))

这就是我最近可能会做的事情。

关于emacs - 在 org 模式代码块导出中显示困惑的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38857751/

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