我正在使用org-mode编写一个报告然后导出到LaTeX。
我有一些不同的.org
文件(每章一个),我将其导出为“无头”LaTeX,然后组合成一个主.tex
文件。
除了生成的.tex
文件包含具有冲突数字的标签之外,这很有效。因此,a.tex
和b.tex
都包含\label{sec-1}
,例如。
只要我从未真正使用过这些参考文献,那么我认为这并不是什么问题,尽管这些警告确实让我感到烦恼。有没有办法关闭这些标签的生成?它应该很简单,但我在文档中找不到任何相关内容。
答案 0 :(得分:4)
为什么不将完整报告编写为一个大型组织文件?
无论如何,如果你喜欢有多个较小的文件,我建议在一个Org主文件中“包含”它们,如下所示:
* Chapter 1
#+INCLUDE: "chapter1.org"
* Chapter 2
#+INCLUDE: "chapter2.org"
这样,Org只会看到一个文件(然后,我猜你的问题就会消失),而你可以根据需要编辑它们。
答案 1 :(得分:3)
我写了一些Lisp,它会在导出到LaTeX后删除所说的标签,如下所示:
(defun remove-orgmode-latex-labels ()
"Remove labels generated by org-mode"
(interactive)
(let ((case-fold-search nil))
(goto-char 1)
(replace-regexp "\\\\label{sec-[0-9][^}]*}" "")
)
)
(add-hook 'org-export-latex-final-hook 'remove-orgmode-latex-labels)
这似乎可以在不删除我自己的自定义标签的情况下完成工作。
答案 2 :(得分:1)
截至目前(2021 年 5 月 18 日)正确的解决方案是:
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
(when (org-export-derived-backend-p backend 'latex)
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
(add-to-list 'org-export-filter-headline-functions
'my-latex-filter-removeOrgAutoLabels)
仅对之前的答案稍作修改。
答案 3 :(得分:0)
最近(2020 年)Org-Mode 对我有用:
(defun rm-org-latex-labels (text backend _info)
"Remove labels auto-generated by `org-mode' export to LaTeX."
(when (eq backend 'latex)
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
(add-to-list #'org-export-filter-headline-functions
#'rm-org-latex-labels)