LaTeX 환경: Emacs+AUCTeX
;; ================================================= ;; εμαcs is ⎋[esc]⌘[meta]⌥[alt]⌃[ctrl]⇧[shift]. ;; =================================================
이 문서는 emacs org-mode로 작성된 글입니다.
Operating System Environments
- Main- : OS X Mavericks (10.9.1)
- Sub- : Debian GNU/Linux Wheezy (7.3)
- Server: Debian GNU/Linux Squeeze || Lenny
- Mobile: iOS 7.0.4
Table of Contents
LaTeX 환경을 한마디로 하자면, Emacs(+AUCTeX) + Bash shell + a viewer 이다. 가히 최고의 조판 환경이다. Emacs를 editor로 써서 source 파일(.tex
)을 편집하고, compile은 bash shell에서 하며, 완성된 문서(.pdf
, .dvi
, etc)는 전용(?) software로 확인하는 방식이다.
물론 많은 사람들이 LaTeX을 쓰는데 특화된 전용 softwares를 쓰기도 한다. OS X 용의 TeXShop, Linux KDE environment의 Kile, 최근에 다른 모두를 앞도하기 시작한 cross-platform의 TeXworks 등이 특히 유명하다. 이들은 모두 이 안에서 편집하고, 만들고, 볼 수 있다. 그냥 보기에는 이들 전용 softwares에 비해서, Emacs(+AUCTeX) + Bash shell + a viewer 조합이 불편해 보이는 것도 사실이다. 하지만 이 조합이 주는 장점은, 첫째 모든 editor를 emacs 하나로 통일 할 수 있고, 둘째 .pdf
전용 viewer 사용, 셋째 마우스 사용이 거의 없다는 점 등이다. 게다가 Emacs(+AUCTeX) 는 정말 강력한 LaTeX 사용 환경을 제공한다. 이 때문에 나는 Emacs에 입문하게 되었다. 현재는 LaTeX 에다가 C, FORTRAN, MATHEMATICA code, 등의 내가 쓰는 모든 source codes를 emacs 안에서 해결하고 있을 뿐만 아니라, org-mode, deft, markdown-mode 등으로 이메일, 블로그, Todos 등도 모두 emacs로 해결하고 있다.
Emacs(+AUCTeX) + Bash shell + a viewer 조합에서 OS 마다 emacs pork도 다르고 pdf viewer도 달라진다. 또한 어떤 emacs 종류를 쓰느냐에 따라 AUCTeX이 깔려있기도 하고 아니기도 하다. Shell 계를 평정한 bash shell 만은 다 같지만 OS 마다 이름이 조금씩 다르다. OS X에서는 Terminal.app이고 Debian GNU/Linux와 Kubuntu에서는 Konsole 혹은 Terminal이라고 불린다. 일단 이 환경을 완성하면, OS와는 상관없이 사용자가 실제 LaTeX를 쓰는 방법은 동일하다.
여기에 BibTeX까지 쓰면 금상첨화이다. AUCTeX과는 다르게 Emacs에서 BibTeX 사용을 위해 설치하거나 설정해야 할 일을 별로 없다. 그냥 쓰면 된다. 자세한 사용 방법은 지난 Posts를 참고하자.
BibTeX까지 쓰는 경우 간단한 문서 작성 workflow는 다음과 같다. 예를 들어, Source는 main.tex
라 하고 이 안에 적당한 BibTeX 파일이 사용되어 있으며 pdflatex
으로 compile하는 경우에
- Emacs의 AUCTeX mode로
main.tex
문서를 편집한 후, - Bash shell에서 아래를 차례로 실행,
$pdflatex main $pdflatex main $bibtex main $bibtex main $pdflatex main $pdflatex main
- 그러면 viewer에서 자동으로 바뀐 pdf 문서를 볼 수 있다.
FYI) 위의 2.에서 두 번씩 compile한 이유는 처음에 문서를 만들 때, 그리고 bibliography 를 새로 넣을 때만 필요하다. 그렇지 않은 경우는 한 번만 하면 된다.
OS X
OS X에서 TeX Live 환경 설치는 MacPorts를 사용할 경우, Bash shell(Terminal.app)에서 아래를 실행하는 것으로 끝이다.
$sudo port install texlive
다른 경우나 자세한 설치 과정은 지난 Post를 참고하자.
Aquamacs + Bash shell(Terminal.app) + Skim
Mac OS X Snow Leopard 까지는 Aquamacs + Bash shell(Terminal.app) + Preview.app 조합으로 썼는데, Lion은 안 써봐서 모르겠지만 Mountain Lion 부터 Preview.app이 LaTeX 환경의 pdf viewer로 쓰기에는 엉망이 되어서, 이제는 Aquamacs + Bash shell(Terminal.app) + Skim 조합이 최상이다.
GPL license의 Aquamacs는 현재( ) Aquamacs 3 (preview 3)
을 배포하고 있지만, 한글 사용과 RefTeX 사용에 문제가 있으므로 version 2.5 사용을 추천한다. 어떤 version을 쓰냐와 관계없이 AUCTeX은 깔려있고 바로 쓸 수 있다. (-> Aquamacs 2.5 다운로드 페이지 바로 가기)
Skim은 BSD license의 .pdf
(그리고 .eps
) 전용 software로써 정말 가볍기 때문에 Aquamacs나 Emacs를 쓰지 않더라도 한 번 써보기를 추천한다. OS X Mavericks 출시 직후 잠시 조금 bugs가 있었으나, 현재( ) 심각한 것들은 다 사라졌다. Skim을 그냥 쓰면, .tex
를 편집하여 compile 해서 .pdf
문서가 update 될 때마다 매번 update 하겠냐고 물어봐서 짜증을 유발한다. 원활한 사용을 위해 다시는 물어보지 않게 만들자. Bash shell(Terminal.app)을 열어 아래를 실행하자.
$defaults write -app Skim SKAutoReloadFileUpdate -boolean true
원래대로 되돌리려면, 아래 명령어를 실행하면 된다.1
$defaults delete -app Skim SKAutoReloadFileUpdate
다시 한번 이 조합을 언급하면,
- Aquamacs 2.5 + Bash shell(Terminal.app) + Skim 1.4.7
Emacs(cocoa)
Emacs(cocoa) 설치는, 홈페이지에서 다운로드한 후 설치해도 되고, MacPorts를 이용해서 emacs-app
port를 깔아도 된다. MacPorts 이야기는 많이 다루었으므로 지난 Posts를 참고하자.
- 지난 Post "MacPorts" 바로 가기
- 지난 Post "MacPorts: 안쓰는 Post 지우기" 바로 가기
- 지난 Post "MacPorts in Mavericks"관련#1 바로 가기
- 지난 Post "MacPorts in Mavericks"관련#2 바로 가기
Aquamacs와는 다르게 설정해 주어야 할 것들이 좀 있다. 우선 AUCTeX을 설치해야 한다. 그리고 RefTeX을 쓸 때 mini-buffer에 typing 하는 것들이 Emacs(cocoa)를 종료하면 다 사라지는데, 이렇게 쓰면 매우 불편하다. Bash shell에서 history를 저장하듯이 mini-buffer에서도 history를 저장하게 만들면, 다음에 쓸 때, 위/아래 화살표로 쉽게 불러올 수 있게 된다. Emacs(cocoa)와 MacPorts는 설치되어 있다고 가정하고, 다음 과정은
- 다음을 Bash shell(Terminal.app)에서 실행하여 AUCTeX을 설치하자.
$sudo port install auctex
- 여기를 따라가서 전체 복사를 한 후, Desktop 폴더 아래에
savehist.el
이름의 파일을 만들어 붙여 넣고 저장한다. 아래를 Bash shell(Terminal.app)에서 실행하여 이 파일을~/emacs.d/
아래로 이동시킨다.mv ~/Desktop/savehist.el ~/.emacs.d/savehist.el
~/.emacs
파일을 Emacs(cocoa)로 열어 아래를 붙여 넣는다.2;; ------------------------------------------- ;; auctex for emacs(cocoa) ;; ------------------------------------------- (require 'tex-site) ;; ------------------------------------------- ;; with manually chosen directory ;; ------------------------------------------- (add-to-list 'load-path "~/.emacs.d/") ;; ------------------------------------------- ;; enable savehist.el for saving minibuffer history in emacs(cocoa) ;; ------------------------------------------- (savehist-mode 1) ;; ------------------------------------------- ;; For LaTeX-mode in emacs(cocoa) ;; ------------------------------------------- (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
FYI) MacPorts를 통해서 AUCTeX을 설치하면, tex-live를 비롯한 tex 관련 ports를 모두 재설치 혹은 업그레이드 한다. MacTeX으로 LaTeX 환경을 구성한 경우에는 위의 방법이 먹힐지 장담할 수 없다.
Debian GNU/Linux and Kubuntu
Debian GNU/Linux에서 TeX Live 환경 설치는 Bash shell(Konsole/Terminal)에서 아래를 실행하는 것으로 끝이다.
$sudo apt-get install texlive-full
다른 경우나 자세한 설치 과정은 지난 Post를 참고하자.
GNU Emacs(+AUCTeX) + Bash shell(Konsole/Terminal) + Okular
상황은 Emacs(cocoa) section과 동일하다. 날 것 그대로(?) 쓰면, AUCTeX도 깔려있지 않고, mini-buffer history도 저장되지 않는다. Emacs(cocoa) section에서의 과정을 그대로 밟으면 된다. 약간씩 명령어 같은 것이 다른데, GNU Emacs 는 설치되어 있다고 가정하고, 다음 과정은 아래와 같다.
- 다음을 Bash shell(Konsole/Terminal)에서 실행하여 AUCTeX을 설치하자.
$sudo apt-get install auctex
- 여기를 따라가서 전체 복사를 한 후, Desktop 폴더 아래에
savehist.el
이름의 파일을 만들어 붙여 넣고 저장한다. 아래를 Bash shell(Konsole/Terminal)에서 실행하여 이 파일을~/emacs.d/
아래로 이동시킨다.mv ~/Desktop/savehist.el ~/.emacs.d/savehist.el
~/.emacs
파일을 GNU Emacs로 열어 아래를 붙여 넣는다.;; ------------------------------------------- ;; with manually chosen directory ;; ------------------------------------------- (add-to-list 'load-path "~/.emacs.d/") ;; ------------------------------------------- ;; enable savehist.el for saving minibuffer history in GNU Emacs ;; ------------------------------------------- (savehist-mode 1) ;; ------------------------------------------- ;; For LaTeX-mode in GNU Emacs ;; ------------------------------------------- (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
Debian GNU/Linux과 Kubuntu에는 KDE environment에 따라오는 강력한 pdf viewer software인 Okular가 있다. 아무런 설정 변경없이, 그냥 쓰면 된다.
No comments:
Post a Comment