LaTeX 导出后端根据 org-latex-src-block-backend 的值提供多种代码块渲染方式。默认值 ‘verbatim’ 以原样格式输出代码,无额外样式。其他值支持更丰富的彩色高亮,但需要额外 LaTeX 宏包( ‘listings’ 、 ‘minted’ )、系统工具( ‘minted’ )或 Emacs 包( ‘engraved’ )。详细说明参见 org-latex-src-block-backend 文档字符串。
LaTeX 导出后端可通过 ‘:float’ 与 ‘:options’ 属性将代码块设为浮动对象。 ‘:float’ 取值:
将代码块设为浮动体;默认情况下带标题的代码块均为浮动体。
使代码块跨页面多栏显示。
即使使用标题也不启用 ‘:float’ 浮动体;适用于可能无法在单页内容纳的源代码块。
#+ATTR_LATEX: :float nil #+BEGIN_SRC emacs-lisp Lisp code that may not fit in a single page. #+END_SRC
LaTeX 导出后端会将 ‘:options’ 中的字符串传递给对应 LaTeX 宏包,用于单独定制该代码块。下例为 Engraved 或 Minted 设置 ‘:options’ 。Minted 是功能丰富的代码高亮 LaTeX 宏包143。 Minted 与 Engraved 均基于 fvextra,因此支持许多相同选项。
#+ATTR_LATEX: :options mathescape
#+BEGIN_SRC emacs-lisp
(defun Fib (n) ; $n_i = n_{i-2} + n_{i-1}$
(if (< n 2) n (+ (Fib (- n 1)) (Fib (- n 2)))))
#+END_SRC
如需为文件中所有代码块统一设置选项,可使用 org-latex-listings-options~、~org-latex-engraved-options 与 org-latex-minted-options 变量。