NB: значна частина цього тексту виходила з відповіді на запитання, яке виявилося дублікатом цього питання . Деякі матеріали досить різні, що здавалося, що варто додати його до цього питання.
Режим контуру та складні засоби 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( раніше вона поверталася вдень). Але це не так. Яка забава!
Тепер у доктрині наводиться криптовалюта, що:
Префіксальний ключ, який використовується для команд Контур у другорядному режимі Контур. Значення цієї змінної перевіряється як частина завантаження режиму Контур. Після цього зміна ключа префікса вимагає маніпулювання картами.
Так, дуже корисно. Як не дивно, навіть customizeне встановлює цю змінну в часі, щоб уникнути "маніпулювання картами клавіш" (незважаючи на те, що визначено defcustomу вихідному коді). Практична робота: встановіть цю змінну у своєму файлі init перед завантаженням outlineабо іншим чином, складеним із нього (наприклад, org-mode).
Наприклад, ви хочете, щоб префікс був C-o(це означає, що ви програєте open-line, але ви можете відновити його, якщо ви цього дійсно хочете). Якщо вставити наступне у ваш файл init, ви зробите свою справу:
(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(за замовчуванням C-c C-o C-e:) всередині середовища складе його так, щоб виглядати так:
[itemize]
Якщо помістити курсор десь усередині, [itemize]він тимчасово знову розгорнеться під час редагування, а потім згорнеться назад, [itemize]коли ви перемістите курсор із середовища.
Під "макросом" AUCTeX означає такі речі \footnote{...}. Отже, виклик TeX-fold-macro(за замовчуванням:), C-c C-o C-mколи всередині \footnote{This is a footnote}буде складено його до [f]; вона буде розширюватися та стискатися аналогічно тому, що відбувається із середовищами.
Ви можете використовувати як outline-minor-modeскладні засоби AUCTeX разом в одному документі: вони виконують різні речі на різних його частинах.