使用 emacs 浏览 TeX 代码

使用 emacs 浏览 TeX 代码

emacs编辑源时是否有有用的导航快捷键TeX?例如跳至章节开头/结尾或者类似环境的事情等等。

C-v和太粗糙了,我正在寻找更智能的导航提示。本着和M-v的精神,跳过平衡的括号。C-M fC-M b

答案1

如果您使用 AucTeX,并打开轮廓次要模式,您将获得一系列有用的键绑定,包括(C-= Ctrl-):

C-c @ C-n   移至下一个标题(任意级别)
C-c @ C-p   移至上一个标题(任意级别)
C-c @ C-f   向前移动到同一级别的下一个标题
C-c @ C-b   向后移动到同一级别的上一个标题

(快速浏览一下AucTeX 参考卡将帮助您入门。

答案2

Cc = 在 reftex 中。但 reftex 远不止于此

如何使用 reftex http://jblev​​ins.org/log/large

1.2 节中的键绑定 RefTeX 简介
https://www.gnu.org/software/auctex/manual/reftex.html#SEC1

答案3

答案在于使用 Emacs 来浏览文档。

对于 Tex 中的特定需求,我会制作一个宏。

对于下一部分(与上一节的结尾相同):

    F3          % start recording
    C-s section % search forward for any type of "section"; \sec for specifically \section
    RETURN      % stop there
    F4          % end recording  
    % you could choose to search for \begin{, or for anything.
    Reusing the F4 will replay the macro, so you can test it.

保存以供稍后使用“Cx Ck n”,然后给出名称,并使用 Return。

Mx insert-kbd-macro RETURN the-given-name RETURN 将把代码粘贴到您的文档中。

如果你将代码放入 .emacs 文件中,然后

    (eval-after-load 'latex
                     '(define-key LaTeX-mode-map (kbd "C-c C-z") 'the-given-name))

仅当您进入 latex 模式时,键绑定才会加载。(首先重新启动/重新加载 .emacs)这样 Cc Cz 将转到下一部分(或其他指定的搜索)

答案4

outline-magic扩展大纲模式以使用类似 org 模式的隐藏/显示功能以及神奇的 tab 键。

然后我按照您的要求在初始化文件中添加了更智能的导航提示。

;; OUTLINE MAGIC
(add-hook 'LaTeX-mode-hook 'outline-minor-mode)
(use-package outline-magic
  :ensure t
  :config
  (define-key outline-minor-mode-map (kbd "<C-tab>") 'outline-cycle)
  (define-key outline-minor-mode-map (kbd "<M-up>") 'outline-previous-visible-heading)
  (define-key outline-minor-mode-map (kbd "<M-down>") 'outline-next-visible-heading)
  (define-key outline-minor-mode-map (kbd "<M-S-up>") 'outline-backward-same-level)
    (define-key outline-minor-mode-map (kbd "<M-S-down>") 'outline-forward-same-level)
  )

如果您不使用use-package以下代码,则将其放入初始化文件中应该可以工作:

;; OUTLINE MAGIC
(add-hook 'LaTeX-mode-hook 'outline-minor-mode)
(eval-after-load 'outline
  '(progn
    (require 'outline-magic)
    (define-key outline-minor-mode-map (kbd "<C-tab>") 'outline-cycle)
    (define-key outline-minor-mode-map (kbd "<M-up>") 'outline-previous-visible-heading)
    (define-key outline-minor-mode-map (kbd "<M-down>") 'outline-next-visible-heading)
    (define-key outline-minor-mode-map (kbd "<M-S-up>") 'outline-backward-same-level)
    (define-key outline-minor-mode-map (kbd "<M-S-down>") 'outline-forward-same-level)))

相关内容