Снятие кода для LaTeX в Emacs

Есть ли вспомогательный режим Emacs (или часть кода elisp), который позволяет выборочно скрывать/показывать среды в режиме LaTeX? Например, я хотел бы перейти к началу длинного блока \begin{figure}, нажать клавишу нажатия и отобразить содержимое этой фигурной среды, скрытое от представления. Аналогично с \begin{proof} и т.д. И идеально даже с \subsection s.

Возможно ли это? Я просто пробовал hs-minor-mode, allout-mode и outline-minor-mode, но большинство из них не распознает среды LaTeX, например. hs-minor-mode терпит неудачу с "ошибкой сканирования: несбалансированные круглые скобки". Я бы предпочел не вводить явные фальцевальные метки, например {{{в складной режим.

[В идеале было бы здорово, если бы складки были persistent, но я вижу, что этот вопрос еще не принят.]

Ответы

Ответ 1

AUCTeX делает фальцовку: http://www.gnu.org/software/auctex/manual/auctex.html#Folding

Популярная жалоба на языки разметки, такие как TeX и LaTeX, заключается в том, что в исходном тексте слишком много беспорядка и что нельзя сосредоточиться на контенте. Существуют макросы, в которых вас интересует только тот контент, который они содержат, например, спецификаторы шрифтов, в которых контент может быть определен шрифтом особым образом путем блокировки шрифтов. Или макросы, содержание которых вы хотите видеть только при его редактировании, например, сноски или цитаты. Аналогичным образом вы можете обнаружить определенные среды или комментарии, отвлекающие внимание при попытке сосредоточиться на теле документа.

С функцией складывания AUCTeXs вы можете свернуть эти элементы и заменить их фиксированной строкой, содержимым одного из своих аргументов или смесью обоих. Если вы хотите, чтобы исходный текст отображался снова, чтобы просмотреть или отредактировать его, переместите точку в сторону на местозаполнитель (также называемую отображаемой строкой) или щелкните левой кнопкой мыши с указателем мыши на нем. (Последний в настоящее время поддерживается только на Emacs.) Макрос или среда будет развернута автоматически, оставайтесь открытыми до тех пор, пока точка внутри нее, и снова рухнет, как только вы переместите точку из нее. (Обратите внимание, что сложение среды в настоящее время не работает в каждом режиме AUCTeX.)

Чтобы использовать эту функцию, вам необходимо активировать TeX-fold-mode, который активирует функцию автоматического обнаружения и необходимые команды, чтобы скрыть и показать макросы и среды. Вы можете активировать режим в определенном буфере, набрав команду M-x TeX-fold-mode RET или используя комбинацию клавиш C-c C-o C-f. Если вы хотите использовать его каждый раз, когда вы редактируете документ LaTeX, добавьте его в hook:

(add-hook 'LaTeX-mode-hook (lambda ()
                             (TeX-fold-mode 1)))

Если он должен быть активирован во всех режимах AUCTeX, используйте TeX-mode-hook вместо LaTeX-mode-hook.

Как только режим активен, доступно несколько команд для скрытия и отображения макросов, сред и комментариев...