gpt4 book ai didi

emacs - 避免\printbbliography被Org-mode标题吞噬

转载 作者:行者123 更新时间:2023-12-04 04:22:45 24 4
gpt4 key购买 nike

使用组织模式及其LaTeX导出时,通常使用BibTeX或Biblatex来处理引用。在那种情况下,LaTeX命令\printbibliography通常包含在org文件中。 \printbibliography放置在org文件中,LaTeX应该在该文件中写出引用列表。 \printbibliography的作用是在引用列表中插入一个LaTeX header 。在大多数情况下,\printbibliography放置在org文件的末尾,仅仅是因为在大多数文档中,引用列表都放置在最后。这意味着\printbibliography将包含在org文件的最后一个标题下,例如

* Heading

\printbibliography

这也意味着当该标题折叠时, \printbibliography将被吞下:
* Heading...

但这违反了 \printbibliography的含义,因为它在输出中包含其自己的标题。另外,吞下 \printbibliography并在其后放置新标题也将造成困惑,因为这样引用列表将不再出现在文档的最后。

我怎样才能使orgt模式下的部分不会吞下 \printbibliography?一个额外的问题:如何使Org-mode在 \printbibliography之后不会创建标题,除非在光标之后按C-Ret键?

在寻找此问题的解决方案时,我找到了 http://comments.gmane.org/gmane.emacs.orgmode/49545

最佳答案

以下内容经过了严格的测试,但是使用tab和shift-tab隐藏和显示内容对我而言有效。这些是我使用的唯一隐藏和显示命令,因此,如果您使用其他命令,则可能必须以其他方式建议或修复它们。

您当然可以将org-footer-regexp更改为所需的任何内容。我希望不必使用任何建议,但是在不建议org-end-of-subtree的情况下,最后一个标题永远不会与tab一起循环,因为它认为它没有被隐藏,因此将其隐藏,然后org-cycle-hook取消隐藏它。它在运行org-end-of-subtree之前先调用org-pre-cycle-hook,因此也不是一种选择。

(defvar org-footer-regexp "^\\\\printbibliography\\[.*\\]$"
"Regexp to match the whole line of the first line of the footer which should always be shown.")

(defun show-org-footer (&rest ignore)
(save-excursion
(goto-char (point-max))
(when (re-search-backward org-footer-regexp nil t)
(outline-flag-region (1- (point)) (point-max) nil))))

(add-hook 'org-cycle-hook 'show-org-footer)
(add-hook 'org-occur-hook 'show-org-footer)

(defadvice org-end-of-subtree (after always-show-org-footer
()
activate)
(when (>= (point) (1- (point-max)))
(re-search-backward org-footer-regexp nil t)
(setq ad-return-value (point))))

关于emacs - 避免\printbbliography被Org-mode标题吞噬,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134956/

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