NB: большая часть этого текста пришла от ответа на вопрос, который оказался дубликатом этого вопроса . Некоторые материалы достаточно разные, поэтому казалось, что стоит добавить их к этому вопросу.
Режим Outline и средства складывания AUCTeX - это два разных зверя, которые предназначены для общего действия: скрывать и показывать выбранные части буфера.
Ключевой элемент, который нужно распознать при использовании, outline-minor-mode
заключается в том, что у него есть префиксный ключ, отличный от outline-mode
(т. Е. Основной режим ) - именно для того, чтобы избежать конфликтов клавиш с клавишами перемещения и т. Д. Этот префикс по умолчанию является неудобным для ввода C-c @
(хотя можно изменить это путем настройки outline-minor-mode-prefix
). Все перечисленные комбинации клавиш на этом узле руководства должны работать, но с изюминкой , что вы заменить основной режим префикс C-c
с второстепенным режимом приставкой C-c @
. Следовательно, C-c @ C-c
работает hide-entry
, C-c @ C-e
работает show-entry
и так далее.
Чтобы использовать эти возможности, вам необходимо включить outline-minor-mode
. Самый простой способ - с помощью ловушки режима:
(add-hook 'LaTeX-mode-hook #'outline-minor-mode)
изменения outline-minor-mode-prefix
Это должно быть легко изменить outline-minor-mode-prefix
(это было раньше ). Но это не так. Как весело!
Строка документации теперь дает загадочное примечание:
Префиксная клавиша, используемая для команд Outline в вспомогательном режиме Outline. Значение этой переменной проверяется как часть режима загрузки Outline. После этого изменение префиксного ключа требует манипулирования раскладками клавиш.
Да, очень полезно. Как ни странно, даже customize
не устанавливает эту переменную вовремя, чтобы избежать «манипулирования клавишами» (несмотря на то, что это определено defcustom
в исходном коде). Практический обходной путь : установите эту переменную в вашем файле инициализации перед загрузкой outline
или чем-либо еще созданным из него (например, org-mode
).
Например, вы можете захотеть , чтобы префикс был C-o
(что означает, что вы проигрываете open-line
, но вы можете привязать его, если действительно хотите). Поместив следующее в ваш файл инициализации, добьемся цели:
(global-unset-key "\C-o")
(setq outline-minor-mode-prefix "\C-o")
Теперь вы сможете получить доступ ко всем функциям режима структуры, используя C-o
префикс - C-o C-c
для вызова hide-entry
, C-o C-e
вызова show-entry
и т. Д.
добавление новых контурных заголовков
В качестве дополнительного бонуса вы также можете настроить, какие заголовки контуров можно сложить и до каких уровней. Мне, например, нравится иметь возможность создавать «поддельные» заголовки разделов, чтобы скрывать текст, который не имеет истинного заголовка LaTeX, но логически поддерживается на том же уровне документа. С помощью следующего кода вы можете использовать:
%section{a fake section}
Blah blah blah blah blah, LaTeX doesn't recognize me as a section...
\section{a real section}
Blah blah blah blah blah, LaTeX treats me as a real section
И вы сможете манипулировать фальшивым разделом, как и любым другим, но LaTeX проигнорирует его при компиляции документа:
;; extra outline headers
(setq TeX-outline-extra
'(("%chapter" 1)
("%section" 2)
("%subsection" 3)
("%subsubsection" 4)
("%paragraph" 5)))
;; add font locking to the headers
(font-lock-add-keywords
'latex-mode
'(("^%\\(chapter\\|\\(sub\\|subsub\\)?section\\|paragraph\\)"
0 'font-lock-keyword-face t)
("^%chapter{\\(.*\\)}" 1 'font-latex-sectioning-1-face t)
("^%section{\\(.*\\)}" 1 'font-latex-sectioning-2-face t)
("^%subsection{\\(.*\\)}" 1 'font-latex-sectioning-3-face t)
("^%subsubsection{\\(.*\\)}" 1 'font-latex-sectioning-4-face t)
("^%paragraph{\\(.*\\)}" 1 'font-latex-sectioning-5-face t)))
outline-magic
расширяет режимы контура для использования org-mode
-подобного сокрытия / показа с помощью волшебной клавиши табуляции. Другими словами, вы, вероятно, можете добавить это в свой рабочий процесс и сделать ваши документы LaTeX более похожими на org
документы. (Я не использую его сам, поэтому не могу комментировать функциональность.)
Средства складывания AUCTeX работают в средах и, как они (смущающе) называют макросами , а не в секциях. Чтобы использовать эту функцию, вам нужно включить ее с TeX-fold-mode
.
Например, развернутая itemize
среда может выглядеть так:
\begin{itemize}
\item An item
\item Another item
\end{itemize}
Вызов TeX-fold-env
(default:) C-c C-o C-e
внутри среды складывает его так, чтобы он выглядел следующим образом:
[itemize]
Поместив курсор где-то внутри, [itemize]
он временно будет снова расширяться, пока вы его редактируете, а затем будет уменьшаться до того [itemize]
момента, когда вы будете перемещать курсор из среды.
Под «макросом» AUCTeX подразумеваются такие вещи, как \footnote{...}
. Следовательно, вызов TeX-fold-macro
(default:), C-c C-o C-m
когда внутри \footnote{This is a footnote}
, свернет его до [f]
; он будет расширяться и сжиматься аналогично тому, что происходит с окружающей средой.
Вы можете использовать оба outline-minor-mode
средства складывания AUCTeX вместе в одном документе: они делают разные вещи в разных его частях.