При редактировании файлов org очень удобно, когда вы можете скрывать и отображать заголовки и их содержимое, просто нажимая TAB
на заголовок.
Например, рассмотрим следующий буфер
* Headline 1
Some text here.
* Headline 2
Some more text here.
Если я поставлю точку на первую *
и нажму TAB
, я получу следующее:
* Headline 1...
* Headline 2
Some more text here.
Есть ли способ добиться этого с помощью разделов LaTeX?
то есть, как я могу скрыть и отобразить содержимое раздела / главы / и т. д. LaTeX, сохраняя при этом заголовок видимым? Я использую AucTeX для LaTeX-режима, но я не нашел ничего, что могло бы выполнять эту роль.
latex
code-folding
Malabarba
источник
источник
Ответы:
NB: большая часть этого текста пришла от ответа на вопрос, который оказался дубликатом этого вопроса . Некоторые материалы достаточно разные, поэтому казалось, что стоит добавить их к этому вопросу.
Режим Outline и средства складывания AUCTeX - это два разных зверя, которые предназначены для общего действия: скрывать и показывать выбранные части буфера.
outline-minor-mode
Ключевой элемент, который нужно распознать при использовании,
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
. Самый простой способ - с помощью ловушки режима:изменения
outline-minor-mode-prefix
Это должно быть легко изменить
outline-minor-mode-prefix
(это было раньше ). Но это не так. Как весело!Строка документации теперь дает загадочное примечание:
Да, очень полезно. Как ни странно, даже
customize
не устанавливает эту переменную вовремя, чтобы избежать «манипулирования клавишами» (несмотря на то, что это определеноdefcustom
в исходном коде). Практический обходной путь : установите эту переменную в вашем файле инициализации перед загрузкойoutline
или чем-либо еще созданным из него (например,org-mode
).Например, вы можете захотеть , чтобы префикс был
C-o
(что означает, что вы проигрываетеopen-line
, но вы можете привязать его, если действительно хотите). Поместив следующее в ваш файл инициализации, добьемся цели:Теперь вы сможете получить доступ ко всем функциям режима структуры, используя
C-o
префикс -C-o C-c
для вызоваhide-entry
,C-o C-e
вызоваshow-entry
и т. Д.добавление новых контурных заголовков
В качестве дополнительного бонуса вы также можете настроить, какие заголовки контуров можно сложить и до каких уровней. Мне, например, нравится иметь возможность создавать «поддельные» заголовки разделов, чтобы скрывать текст, который не имеет истинного заголовка LaTeX, но логически поддерживается на том же уровне документа. С помощью следующего кода вы можете использовать:
И вы сможете манипулировать фальшивым разделом, как и любым другим, но LaTeX проигнорирует его при компиляции документа:
outline-magic
outline-magic
расширяет режимы контура для использованияorg-mode
-подобного сокрытия / показа с помощью волшебной клавиши табуляции. Другими словами, вы, вероятно, можете добавить это в свой рабочий процесс и сделать ваши документы LaTeX более похожими наorg
документы. (Я не использую его сам, поэтому не могу комментировать функциональность.)Складные помещения AUCTeX
Средства складывания AUCTeX работают в средах и, как они (смущающе) называют макросами , а не в секциях. Чтобы использовать эту функцию, вам нужно включить ее с
TeX-fold-mode
.Например, развернутая
itemize
среда может выглядеть так:Вызов
TeX-fold-env
(default:)C-c C-o C-e
внутри среды складывает его так, чтобы он выглядел следующим образом:Поместив курсор где-то внутри,
[itemize]
он временно будет снова расширяться, пока вы его редактируете, а затем будет уменьшаться до того[itemize]
момента, когда вы будете перемещать курсор из среды.Под «макросом» AUCTeX подразумеваются такие вещи, как
\footnote{...}
. Следовательно, вызовTeX-fold-macro
(default:),C-c C-o C-m
когда внутри\footnote{This is a footnote}
, свернет его до[f]
; он будет расширяться и сжиматься аналогично тому, что происходит с окружающей средой.Вы можете использовать оба
outline-minor-mode
средства складывания AUCTeX вместе в одном документе: они делают разные вещи в разных его частях.источник
TAB
, и это, вероятно, можно было бы сделать для AUCTeX. ПоTAB
моему мнению, складывание макросов с помощью будет раздражать (это было бы похоже на складывание встроенных спецификаций уценки ...).outline-minor-mode
должен работать с AUCTeX: gnu.org/software/auctex/manual/auctex/Outline.html . То есть до тех пор, пока вы не начнете определять новые макросы заголовков в LaTeX ...То, что вы хотите, называется сворачиванием, и есть два способа сделать это.
План-минорный режим
Это встроенный второстепенный режим, который используется именно в орг-режиме, чтобы скрывать и отображать заголовки. Вы можете убедиться, что он всегда включен
latex-mode
сОпределенные им сочетания клавиш немного сложны в использовании, поэтому вы можете изменить некоторые из них.
Латекс-экстра
latex-extra - это второстепенный режим, доступный в Melpa и Melpa-stable. Вы можете установить его с помощью
M-x package-install RET latex-extra
и включить егоОн добавляет ряд удобств
latex-mode
, одним из которых является складывание секций.latex-extra
также используетсяoutline-minor-mode
за кулисами, но преимущество заключается в том, что он более близко имитирует поведение режима org (хотя и не идентично).Из его readme :
источник