org-mode가 헤드 라인과 마찬가지로 LaTeX 섹션을 숨기거나 표시하려면 어떻게해야합니까?


29

조직 파일을 편집 할 때 헤드 라인을 쳐서 헤드 라인과 해당 내용을 숨기고 표시하는 방법이 매우 편리하다는 것을 알게되었습니다 TAB.

예를 들어 다음 버퍼를 고려하십시오.

* Headline 1
Some text here.

* Headline 2
Some more text here.

내가 처음에 점을 배치하는 경우 *, 그리고 히트 TAB, 나는 다음을 얻을 것이다 :

* Headline 1...
* Headline 2
Some more text here.

LaTeX 섹션으로이를 달성 할 수있는 방법이 있습니까?
즉, 제목을 계속 표시하면서 LaTeX 섹션 / 챕터 등의 내용을 숨기고 표시하려면 어떻게해야합니까? LaTeX 모드에 AucTeX를 사용하고 있지만이 역할을 수행하는 것 같은 것을 찾지 못했습니다.


답변:


13

주의 : 이 본문의 대부분은이 질문과 중복 되는 질문에 대한 답변에서 나왔습니다 . 일부 자료는이 질문에 추가 할만한 가치가있는 것으로 충분히 다릅니다.

아웃 라인 모드 와 AUCTeX 접기 기능 은 크게 동일한 기능을 수행하는 두 가지 다른 기능 입니다. 버퍼의 선택된 부분을 숨기고 표시합니다.

outline-minor-mode

사용하는 경우 핵심 요소는 인식 outline-minor-mode이 아닌 다른 접두사 키를 가지고 있다는 점이다 outline-mode(즉, 주요 모드 ) - 정밀 모션 키 등으로 그 접두어 기본값으로 키 충돌을 피하기 위해 어색한-에 형 C-c @(당신이 할 수 있지만, outline-minor-mode-prefix) 을 사용자 정의하여 변경하십시오 . 에 나와있는 모든 키 바인딩 매뉴얼이 노드 해야 여전히 작동하지만 당신은 대체하는 트위스트와 함께 주요 의 모드 접두사 C-c마이너 의 모드 접두사 C-c @. 따라서 C-c @ C-cruns hide-entry, C-c @ C-eruns show-entry등이 있습니다.

이러한 기능을 사용하려면을 활성화해야합니다 outline-minor-mode. 가장 간단한 방법은 모드 훅입니다.

(add-hook 'LaTeX-mode-hook #'outline-minor-mode)

작고 보기 흉한 사람 outline-minor-mode-prefix

그것은 해야 변화에 대한 간단한 일이 outline-minor-mode-prefix(가 로 사용 날 다시). 그러나 그렇지 않습니다. 무슨 재미!

docstring은 이제 다음과 같은 암호 메모를 제공합니다.

개요 부 모드에서 개요 명령에 사용할 접두사 키. 이 변수의 값은로드 아웃 라인 모드의 일부로 확인됩니다. 그런 다음 접두사 키를 변경하려면 키맵을 조작해야합니다.

예, 매우 도움이됩니다. 이상하게도 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접두사-to C-o C-ccall hide-entry, call 등 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

outline-magicorg-mode매직 탭 키 를 사용하여 숨기기 / 보이기와 같은 아웃 라인 모드를 확장합니다 . 다시 말해, 이것을 워크 플로에 추가하고 LaTeX 문서가 문서처럼 동작하도록 만들 수 org있습니다. (나는 그것을 직접 사용하지 않으므로 기능에 대해서는 언급 할 수 없습니다.)

AUCTeX 접이식 시설

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의 접기 기능을 함께 사용할 수 있습니다 . 서로 다른 부분에서 서로 다른 작업을 수행합니다.


1
기록을 위해, "매크로"라는 이름은 AUCTeX의 이상이 아니며 * TeX에서 이러한 "것들"의 이름입니다. elisp 매크로를 포함하여 모든 매크로 확장 언어의 매크로와 동일한 개념입니다. 마지막 문장에 대해서는 다른 키 바인딩을 사용하기 때문에 주로 작동한다고 덧붙입니다. ( github.com/mlf176f2/fold-dwim-org ) 모두 통합하려는 시도가 있지만 아직 완전히 작동하지는 않습니다.
T. Verron

또한 LaTeX 섹션은 조직 제목과 매우 유사하며 LaTeX 환경은 조직 블록과 매우 유사합니다. 조직은 모두와 함께 접 히고 TAB이것은 아마도 AUCTeX에서 작동하도록 만들 수 있습니다. 접는 매크로 TAB는 제 의견으로는 성가 시게 될 것입니다 (인라인 마크 다운 사양을 접는 것과 비슷합니다 ...).
T. Verron

그리고 마지막 포인트는 outline-minor-mode아웃 - 오브 - 박스 작동합니다 AUCTeX과 : gnu.org/software/auctex/manual/auctex/Outline.html를 . 즉, LaTeX에서 새 제목 매크로를 정의하기 시작할 때까지 ...
T. Verron

26

원하는 것을 접기라고하며 두 가지 방법이 있습니다.

개요 부 모드

이것은 org-mode가 헤드 라인을 숨기고 표시하는 데 사용하는 것과 같은 기본 제공 마이너 모드입니다. 당신은 항상 년에 켜져 있는지 확인 할 수 latex-mode

(add-hook 'LaTeX-mode-hook #'outline-minor-mode)

그것이 정의한 키 바인드는 사용하기가 조금 어려우므로 일부를 변경하고 싶을 수도 있습니다.

C-c @ C-a       show-all
C-c @ C-c       hide-entry
C-c @ C-d       hide-subtree
C-c @ C-e       show-entry
C-c @ TAB       show-children
C-c @ C-k       show-branches
C-c @ C-l       hide-leaves
C-c @ C-o       hide-other
C-c @ C-q       hide-sublevels
C-c @ C-s       show-subtree
C-c @ C-t       hide-body

라텍스 엑스트라

라텍스 엑스트라 는 Melpa 및 Melpa-stable에서 사용할 수있는 마이너 모드입니다. 와 함께 설치 M-x package-install RET latex-extra하고 켤 수 있습니다

(add-hook 'LaTeX-mode-hook #'latex-extra-mode)

그것은 일련의 편의성을 추가하며 latex-mode그중 하나는 섹션 폴딩입니다. latex-extra또한 outline-minor-mode뒤에서 사용 하지만 이점은 조직 모드의 동작을 동일하게는 아니지만 더 밀접하게 모방 한다는 것 입니다.

그것에서 추가 정보 :

org-mode가 하위 트리를 숨기고 표시하는 방법과 유사하게 섹션 헤더에서 Tab 키 를 누르면 latex-extra 가 해당 섹션의 내용을 숨 깁니다. 탭을 두 번 누르면 다시 확장됩니다.
이것은 yasnippet 또는 자동 완성과 같이 TAB 에 대해 설정 한 다른 키 바인드를 방해 하지 않습니다 .

Shift-TAB 은 전체 버퍼에 대해 동일한 작업을 수행합니다.

물론 챕터, 서브 섹션 등도 마찬가지입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.