Org Mode 설정 팁

2021년 2월 2일 수정

헤드라인 단계별 들여쓰기

헤드라인(headline)은 여러 레벨을 지원하는데, 하위 레벨을 들여쓰기를 하고자 하는 경우는 org-startup-indented 값을 nil 이 아닌 값을 설정하면 된다.

(setq org-startup-indented t)

물론 반대로 들여쓰기를 하지 않으려면 t 대신 nil 을 넣으면 된다.

참고로 이 설정은 위 변수 설정 여부와 상관 없이 문서에 프로퍼티로도 설정할 수 있다. 예를 문서 문서 상단에 아래와 같은 코드를 넣으면 헤드라인 자동 들여쓰기가 사용된다.

#+STARTUP: indent

이 프로퍼티를 사용할 때 반대로 들여쓰기를 해제하고 싶다면 indent 대신 noindent 를 사용하면 된다.

헤드라인 후 본문 자동 들여쓰기

헤드라인 들여쓰기와 관련하여 헤드라인 끝에서 엔터키를 누르면 다음 줄에 커서가 가면서 헤드라인이 들여쓰기 되는 만큼 자동으로 본문도 들여쓰기가 되게 하고 싶을 수도 있다. 이럴 때는 org-adapt-indentation 값을 참으로 설정하면 된다.

(setq org-adapt-indentation t)

역시 들여쓰기를 쓰지 않으려면 이 값을 nil 로 설정하면 된다.

링크 렌더링 하지 않기

Org 문서의 링크를 타이틀만 표시하도록 렌더링하는 방법이 있다. 예를 들어 [[https://foo.bar][link name]] 같은 코드를 link name 으로만 표시하고자 한다면 아래 설정을 추가할 수 있다.

(setq org-link-descriptive t)

물론 반대로 링크를 렌더링 하지 않고 그대로 표시하는게 편할 수도 있다 이럴 때는 이 값을 nil 로 설정하면 된다.

링크를 제목만 표시하게 하는 경우 링크 주소를 수정하는 것이 불가능한데, 이 경우 C-c C-l 키로 주소만 별도의 버퍼에서 수정할 수 있다.

커스텀 매크로

자주 사용하는 내용은 특정 키워드로 매크로(macro)를 만들어서 사용할 수 있다. 매크로는 org-export-global-macros 리스트를 세팅해서 만들 수 있다.

(setq org-export-global-macros
      '(("copyright" . "* Copyright 1900 Fossil")
        ("oops" . "@@html:<b><i>OOPS!</i></b>@@")))

위는 두 가지 매크로를 선언한 예이다. 이런 매크로는 {{{name}}} 과 같은 방식의 문법으로 사용이 가능하다.

예를 들어 org 문서에 {{{copyright}}} 라고 쓰게 되면 익스포트 시 해당 내용이 뒤에 선언한 내용으로 치환되어서 익스포트 된다. 따라서 1단계 제목(heading)이 해당 위치에 표시된다.

그 아래의 매크로는 {{{oops}}} 라고 쓰게 되면 역시 뒤의 내용으로 치환된 후 익스포트가 되는데, @@html:...@@ 문법은 HTML 태그를 문서 내부에 한 줄로 쓸 때 사용하는 org 문법이다. 즉 위 매크로가 HTML로 익스포트 되면 굵고 기울어진 "OOPS!" 를 볼 수 있다.