TL;DR
- GNU Emacs의 Org 마크업은 일반 텍스트를 기반으로 서식 문서와 컴퓨팅 작업을 함께 처리하는 강력한 환경임.
- Org는 강조, 아래첨자와 위첨자, 특수 기호, 목록, 인용문, 시와 예제 등 다양한 문서 구조를 간단한 표기로 작성하게 함.
- 소스 코드 블록은 구문 강조와 평가를 지원하며, 메타프로그래밍과 리터러트 프로그래밍에도 활용됨.
- 하이퍼링크와 이미지, 스프레드시트 기능이 문서에 통합되며, 표의 수식은 편집 중이나 문서 게시 시 다시 계산됨.
- 매크로와 주석 기능은 반복되는 내용을 간편하게 삽입하고 게시물에서 특정 내용을 제외하게 함.
일반 텍스트 마크업과 강조
- XML, HTML, TeX와 LaTeX, Troff 같은 무거운 마크업 언어의 대안으로 설계된 경량 마크업 언어는 배우고 입력하기 쉬우며, 조판 결과를 연상시키는 표기 덕분에 읽기에도 편리함.
- Org 마크업은 Markdown, reStructuredText, AsciiDoc 등과 비슷하지만, 특히 Emacs 사용자에게 더 강력한 기능을 제공함. 마크업 원문과 게시 결과를 나란히 비교할 수 있으며, 각 표기에는 여기에 소개된 것보다 더 많은 기능이 있음.
- 제목은 Org 마크업의 일부이며, 제목 사이의 텍스트 대부분은 빈 줄로 구분되는 문단으로 볼 수 있음.
- 강조 표기 방식은 다음과 같음.
/기울임꼴/,*굵게*,_밑줄_,=리터럴=,~코드~,+취소선+임.- 리터럴 및 코드 텍스트에서는 다른 마크업 문법이 적용되지 않으며, 보통 고정폭 글꼴로 게시됨.
- 마크업 문법 문자는 앞에 유니코드 제로 폭 공백(코드 포인트 200B)을 붙여 이스케이프할 수 있음.
- 페이지 너비에 걸치는 가로줄은 하이픈 5개 이상으로 표시함.
- 밑줄은 아래첨자를, 캐럿은 위첨자를 표시함. 예를 들어
H_2O는 H₂O,5^2 = 25는 5² = 25로 나타남. --는 엔 대시,---는 엠 대시를 나타냄. Org는\lambda,\exists같은 특수 기호를 간편하게 입력할 수 있는 이름 있는 엔티티를 400개 넘게 지원함.
목록, 인용문, 시와 예제
- 간단한 비번호 목록은 표, 시, 인용문, 가운데 정렬, 예제 등의 항목으로 구성할 수 있음.
- 키 입력 한 번으로 목록을 여러 형식의 번호 목록으로 바꿀 수 있으며,
org-mode는 항목을 이동·삭제·추가할 때 번호를 다시 계산함. - 인용문 블록은 인용문 표기로 감싸며, 다음과 같은 내용을 담을 수 있음.
다른 사람의 발명으로 큰 이점을 얻는 만큼, 우리도 우리의 발명으로 다른 사람을 도울 기회를 기꺼이 맞이하고, 이를 자유롭고 너그럽게 해야 함. — Benjamin Franklin
- 시 블록은 시처럼 줄바꿈을 유지해야 하는 텍스트에도 사용할 수 있음.
우리는 수많은 문제 해결자를 길러내야 하리라
우리가 푸는 문제 하나마다
새로운 문제 열 개가 생기므로
— Piet Hein
- 마크업을 적용하지 않는 리터럴 예제는 예제 블록으로 작성하며, 게시할 때 고정폭 글꼴로 표시됨. 한 줄짜리 짧은 예제는 콜론으로 시작하는 표기로 나타낼 수 있음.
- 예제 내용:
Athens -> Piraeus,London -> Thamesport,Rome -> Civitavecchia임.
코드 블록과 하이퍼링크
- 소스 코드 블록은 Emacs가 인식하는 프로그래밍 언어나 마크업 언어에 사용할 수 있음.
- 코드 블록은 Org 모드 버퍼와 게시 결과에서 구문 강조를 적용할 수 있으며, 평가해 메타프로그래밍과 리터러트 프로그래밍에 활용할 수도 있음.
- Org는 버퍼에서 클릭할 수 있고 문서를 게시할 때 링크로 렌더링되는 하이퍼링크를 지원함.
https://www.gnu.org/처럼 URL 자체를 표시하거나,[[https://www.gnu.org/][설명]]처럼 설명을 붙일 수 있음.- 내부 링크로 문서 안의 다른 위치로 이동할 수 있음.
- 이메일 메시지, 첨부 파일, Info 문서, 매뉴얼 페이지 등으로 연결하는 Emacs 전용 링크 유형도 다수 지원함.
표와 스프레드시트
- Org는 문서에 삽입하는 스프레드시트를 포함해 표를 폭넓게 지원함. 입력하기 쉬운 표는 게시 시 보기 좋게 렌더링되며, 버퍼에서 키 입력 한 번으로 열을 정렬할 수 있음. 정렬은 선택 사항임.
- 언어별 파일 수: OCaml 2175개, Emacs Lisp 156개, Tcl 13616개임.
- 스프레드시트 기능으로 파일 수 열을 합산할 수 있으며, 예시에서는 합계 15947을 직접 입력하지 않고 계산함.
- 표 안에서
C-u C-c C-c를 입력하면 모든 수식이 갱신되며, 문서를 게시할 때도 수식이 다시 계산됨.
매크로와 이미지
#+MACRO로 매크로를 정의하고 문서에서 호출할 수 있으며, 매크로에 매개변수를 전달할 수도 있음.- 예시 매크로
uofc는 “The University of Chicago”로 확장됨. - 미리 정의된 매크로에는 작성자 이름과 날짜가 있으며, 날짜 매크로에
%Y를 지정하면 연도인 2026으로 확장됨. - URL용 특수 매크로를 정의하면 이를 링크에서 반복해 사용할 수 있음. 예시에서는
gnu를https://www.gnu.org에 연결하고, GNU 웹사이트와 Emacs 웹사이트 링크에 사용함. - 인라인 이미지는 Org 버퍼에 표시할 수 있고 게시물에도 나타남. 이미지에 캡션을 붙이거나 링크를 연결할 수 있으며, 캡션은 소스 코드 블록 같은 다른 구조에도 추가할 수 있음.
주석과 게시 제외
- 주석은 게시 문서로 내보내지 않음. 한 줄을 주석 처리하거나 여러 줄짜리 주석 블록을 사용할 수 있으며, 주석 블록은 접을 수도 있음.
- 제목에
COMMENT키워드를 추가하면 해당 제목 아래의 텍스트 전체가 하위 제목을 포함해 게시물에서 제외됨. - 자세한 내용은 Org 매뉴얼의 “리치 콘텐츠 마크업”, “하이퍼링크”, “표” 항목에서 확인할 수 있음.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요