如何在导出到Latex时将CUSTOM_ID属性作为自定义标签传递?

6

以前我可以在导出到LaTeX后将CUSTOM_ID属性作为自定义的\label传递。代码片段如下:

* Introduction
  :PROPERTIES:
  :CUSTOM_ID: custom_label
  :END:

需要导出到:

\section{Introduction}
\label{sec-1}
\label{custom_label}

我正在使用8.2.7c版本的Org模式,现在已不再这样,上面的Org模式片段导出为:
\section{Introduction}
\label{sec-1}

因此,我需要在各处添加自定义标签,例如:
* Introduction
  :PROPERTIES:
  :CUSTOM_ID: custom_label
  :END:
  \label{custom_label}

有没有更好的方法在新的org-latex-export-as-latex方式中传递CUSTOM_ID属性?或者更一般地说,是否有系统化的方法在导出为LaTeX时传递任何属性?谢谢你的帮助和指点。

但是 Go to [[#custom_label]] 导出为 Go to \ref{sec-1}。为什么这对你不够好呢? - rvf0068
嗨,谢谢你的询问。我使用 org-mode 来发布书籍(通过 LaTeX)。有些书籍就像字典一样,每个条目都有自己的键,由出版商指定。我需要能够访问这些“键”(作为标签),以便正确地打印它们(作为运行标题或其他位置)。 - gsl
2个回答

5

如果您没有注意到@nberth的答案,在当前版本 Org 8.3.2 中,请执行以下操作

(setq org-latex-prefer-user-labels t)

0

目前的org-mode开发分支(8.3)允许使用CUSTOM_ID属性来实现此功能。

如果需要在LaTeX导出中使用自己的标签,可以将org-latex-custom-id-as-label设置为非nil值。

org-latex-custom-id-as-label是Org v8.3的一部分。

以下代码:

(with-temp-buffer
  (let ((org-latex-custom-id-as-label t))
    (insert "* Introduction\n:PROPERTIES:\n:CUSTOM_ID: custom_label\n:END:")
    (org-mode)
    (org-latex-export-as-latex nil nil nil t)))

将生成一个包含内容的缓冲区

\section{Introduction}
\label{custom_label}

按照需求。


3
你需要使用org-latex-prefer-user-labels,根据这个最近的提交 - nberth
不错!如果您把评论转化成答案,我可以接受它。谢谢。 - gsl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接