KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Executive ability is prominent in your make-up.
FrontPage › AUCTeX

TeX, LaTeX 파일의 편집, 컴파일, 화면보기, 인쇄 등의 작업을 쉽게 할 수 있도록 해주는 Emacs의 매크로 패키지. AUCTeXTeX의 한 종류는 아닙니다.

목차

1 소개
1.1 한글LaTeX길잡이
2 설치
3 설정
4 단축키
4.1 컴파일
4.2 명령 입력
4.3 수학
4.4 주석
4.5 소스 포맷
4.6 이동과 영역 선택
4.7 접기
4.8 도움말
5 Tips
5.1 설정
5.1.1 hermian



1 소개

1.1 한글LaTeX길잡이

from 한글LaTeX길잡이 by 은광희
AUCTeX은 이러한 Emacs 내에서 손쉽게 LaTeX 문서를 작성하고 작업하는 데 필요한 대부분의 환경을 제공합니다. 그러므로 HLaTeX 문서를 이러한 편집기와 보조 프로그램으로 작성하면 많은 편리함을 얻을 수 있읍니다.

그런 편리함 중의 하나만 간단히 소개합니다. 200 쪽의 한글 문서를 작성했을 때, 중간에 한 소절(subsection)을 추가했다고 합시다. 과연 이 부분도 아무 문제없이 잘 작성되었는가를 알아보고자 할 때 보통은 전 문서를 LaTeX으로 작업해야 합니다. 그러나 똑똑한 편집기에서의 AUCTeX 기능은 이를 매우 단순화합니다.

  1. 새로 작성된 부분을 영역(region)으로 정의한다. (영역은 C-SPC 글쇠를 눌러서 set-mark-command 실행시킨 곳에 있는 mark와 현재 깜빡이(cursor)가 있는 point의 사이를 말한다.)

  2. C-c C-r를 누른다. (이 글쇠는 TeX-command-region을 의미하며, 먼저 사이칸(buffer)이 수정되었는가를 살펴봐서 저장판에 갈무리(save)할 것인가를 물어보고 .tex 파일이 .dvi 파일을 비교하여 .tex파일이 더 새 것이면 LaTeX할 것을 제시한다.)

  3. 착오가 있으면 $$\mbox{C-}$$를 누른다. (TeX-next-error`: 착오가 발생한 지점으로 가서 그 착오에 대한 설명을 보여준다.)

  4. 위와 같이 착오를 차례로 고치고 TeX-command-region을 반복한다. 아무 착오가 없으면 TeX-command-region을 다시 실행한다. (아무 착오가 없을 경우에 AUCTeX은 미리보기를 제시한다.)

  5. 모든 부분이 만족스러우면 C-c C-c를 누른다. (TeX-command-master: 전체 문서를 LaTeX하거나 미리보기할 수 있다.)

AUCTeX이 내부적으로 TeX-command-region을 어떻게 처리하는가는 간단히 다음과 같이 설명할 수 있읍니다. 일단 AUCTeX_region_.tex라는 빈 사이칸을 마련하여 문서의 처음부터 \begin{document}까지를 이 사이칸에 집어 넣는다. 영역을 _region_.tex에 덧붙친다. 마지막으로 \end{document}_region_.tex에 추가한다. LaTeX하기를 제시한다. _region_.texLaTeX으로 돌린다.

EmacsEmacs답게 제대로 사용한다는 것이 쉬운 일은 아니지만, 위와 같은 한가지 예를 보더라도, 배워서 그 효과를 충분히 만끽할 수 있는 똑똑한 편집기입니다.

2 설치


debian/ubuntu
$ sudo apt-get install auctex

3 설정


AUCTeX의 기본적인 기능을 제대로 사용하려면 ~/.emacs 파일에 다음 세 라인을 추가하는 것이 좋다. 더 자세한 설정은 아래 Tips 참조.
(setq-default TeX-master nil)
(setq TeX-auto-save t)
(setq TeX-parse-self t)

4 단축키

4.1 컴파일


현재 문서를 컴파일하려면 C-c C-c 단축키를 이용한다. 영역을 선택한 후 C-c C-r 단축키를 이용하여 해당 부분만 컴파일할 수도 있다. C-c C-v 단축키로 출력물을 볼 수 있다. 기본으로 DVI 모드로 작동하여 latex으로 컴파일하고 xdvi로 출력물을 보여준다. pdflatex으로 컴파일하고 xpdf로 보려면 C-c C-t C-p 단축키를 이용해서 PDF 모드로 전환하면 된다. 이외에 다른 모드들도 있다.

key binding description
C-c C-c TeX-command-master
C-c C-r TeX-command-region
C-c C-v TeX-view view dvi/ps/pdf
C-c C-t C-p toggle PDF mode

여러 개의 파일과 \input, \include 명령을 이용하여 작성된 문서를 편집하는 경우 C-c C-b 단축키로 현재 파일만 컴파일할 수 있다. 이때 TeX-master가 설정되어 있어야 한다. C-c _ 단축키로 현재 파일의 TeX-master를 설정할 수 있다. 파일 끝부분에 설정 내용이 삽입된다.

key binding description
C-c C-b compile buffer
C-c _ set TeX-master

컴파일 중 무한 루프에 들어간 것으로 보일 때는 C-c C-k 단축키로 멈출 수 있다.


key binding description
C-c C-k kill


4.2 명령 입력


장절명령은 C-c C-s, 환경은 C-c C-e, 매크로는 C-c C-m를 이용하여 편리하게 입력할 수 있다. 명령을 입력할 때 탭 또는 스페이스바를 누르면 사용가능한 명령의 목록이 나오고 앞부분만 입력한 후 탭을 이용한 자동완성이 가능하다.

key binding description
C-c C-s LaTeX-section
C-c C-e LaTeX-environment
C-c C-m TeX-insert-macro

글꼴 명령은 C-c C-f에 이어서 각 글꼴에 대응되는 단축키로 입력할 수 있다. 해당 글꼴을 지정할 영역을 선택한 후 명령을 내릴 수도 있다. 지정된 글꼴명령을 없애려면 C-c C-f C-d 단축키를 이용한다.

key binding description
C-c C-f C-b
c-c C-f C-i
C-c C-f C-e
C-c C-f C-s
C-c C-f C-r
C-c C-f C-f
C-c C-f C-t
C-c C-f C-c
C-c C-f C-d

나열환경에서 C-c C-j 단축키를 누르면 줄이 바뀌면서 자동으로 \item 또는 \item[] 명령이 입력된다.

key binding description
C-c C-j insert \item

TeX-parse-self와 TeX-auto-save를 켜놓으면 자신이 정의한 매크로, \ref에 사용할 키워드 등도 목록에 나타나고 자동완성이 된다. ~/.emacs에 설정을 하지 않았을 경우에도 C-c C-n 단축키를 이용하여 현재 파일에 대해 파싱을 하면 이 기능을 이용할 수 있다.

key binding description
C-c C-n

4.3 수학


수학: C-c ~ 단축키를 이용하여 LaTeX-math-mode를 켜고 끌 수 있다. 라텍 수학 모드가 켜진 상태에서 `를 눌러서 기호를 빠르게 입력할 수 있다. 예를 들어, `a를 누르면 \alpha{}가 입력된다.

key binding description
C-c ~ LaTeX-math-mode

4.4 주석


주석 처리: 영역을 선택한 후 C-c ; 단축키를 쓰면 해당 부분이 주석 처리된다. C-c % 단축키를 쓰면 현재 커서가 위치한 단락이 주석 처리된다. 주석 처리된 부분에서 이들 단축키를 쓰면 주석이 해제된다.

key binding description
C-c ; comment region
C-c % comment paragraph
C-c ' comment paragraph
C-c " uncomment paragraph

4.5 소스 포맷


들여쓰기와 줄바꿈 등의 소스 포맷을 조절하는 단축키는 C-c C-q로 시작한다.

key binding description
M-q



4.6 이동과 영역 선택


영역 선택: C-c * 단축키는 현재 커서가 위치한 장절을, C-c .은 현재 커서가 위치한 환경을 선택하는 데 사용한다.

key binding description
C-c * LaTeX-mark-section
C-c . LaTeX-environment

C-c } 단축키를 누르면 현재 커서가 위치를 포함하고 있는 짝이 맞는 }로 이동한다.

key binding description
C-c }

AUCTeX에서 제공하는 단축키는 아니지만, C-M-a로 현재 환경의 \begin으로 C-M-e로 \end로 이동할 수 있다.

key binding description
C-M-a beginning of defun
C-M-e end of defun

4.7 접기


여러가지 명령, 환경, 주석 등을 보이지 않게 접으면 본문에 더 집중해서 편집할 수 있다. 관련 단축키는 C-c C-o로 시작한다. C-c C-o C-f 단축키로 TeX-fold-mode를 켤 수 있다.

key binding description
C-c C-o C-f TeX-fold-mode

현재 커서가 위치한 부분의 매크로, 환경, 주석을 접고 펴려면 C-c C-o C-o 단축키를 이용한다. 상황에 따라 적절하게 작동한다.

key binding description
C-c C-o C-o TeX-fold-dwim

환경은 C-e, 매크로는 C-m로 접을 수 있다. 현재 버퍼 전체에서 접을 수 있는 모든 것을 접으려면 C-b, 선택 영역에서는 C-r, 현재 단락에서는 C-p를 사용한다.

key binding description
C-c C-o C-e TeX-fold-environment
C-c C-o C-m TeX-fold-macro
C-c C-o C-b TeX-fold-buffer
C-c C-o C-r TeX-fold-region
C-c C-o C-p TeX-fold-paragraph

접힌 부분은 환경이라면 예를 들어, verbatim 식으로 나타난다. 이 위치로 커서를 이동하면 자동으로 펴진다. 만약에 특정 부분을 항상 펴놓고 싶으면 i를 이용한다. 현재 버퍼 전체에서 모든 것을 펼치려면 b, 영역에서는 r, 단락에서는 p를 사용한다.

key binding description
C-c C-o i TeX-fold-clearout-item
C-c C-o b TeX-fold-clearout-buffer
C-c C-o r TeX-fold-clearout-region
C-c C-o p TeX-fold-clearout-paragraph

4.8 도움말


텍에 관련된 매크로와 패키지에 관한 도움말을 볼 수 있다.

key binding description
C-c ? TeX-doc

5 Tips

Q. TeX 파일을 유닉스, 맥, PC, 등을 사용하는 여러 사용자끼리 이메일로 주고 받다가 엉망이 되어 버렸습니다. 예를 들어 한줄의 길이가 수백자씩 되고, 독립된 줄에 있던 \begin{..} 또는 \end{...} 등이 한줄로 다 합쳐져 있습니다. TeX을 돌려 dvi 파일을 얻는데에는 아무런 지장이 없지만, 원본의 수정 작업이 힘듭니다. 이렇게 된 파일을 예쁘게 고쳐 주는 프로그램이 있을까요? (from KTUGOperate:6526) A. AUCTeX에서 제공하는 Format Region, Format Paragraph를 써보시면 어떨까요? 영역을 선택한 다음 Format Region 하거나, M-q로 Format Paragraph하면 우선 각 줄을 적당한 길이로 잘라줄 것입니다. 이것을 마음에 들게 바꾸시면 될 듯합니다.

5.1 설정

5.1.1 hermian

2006-06-30 update 중 _emacs NTEmacs입니다.
;;; =============================================================
;;; Korean Language Environment
;;; =============================================================
;; General korean langauge environment
;;(set-language-environment "Korean")
(set-default-coding-systems 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq coding-system-for-read 'utf-8)
;;; =============================================================
;;; Input Method
;;; =============================================================
;; C-SPC or C-\ for toggling input method.
;; F9 for switching with hanja input, C-F9 for switching with symbol input
;;    in Korean input method.
;; C-U C-SPC or C-U C-\ for other input method.
;; For Multilingual Input Method Package installed on Windows 95/NT
;; If your default keyboard type is 3 bulsik, uncomment following line.
;; (setq default-korean-keyboard "3")

;; Redefinition from `toggle-korean-input-method ' to `toggle-input-method'
;;(global-set-key [?\S- ] 'toggle-input-method)

;; Selection of major korean input method determines Korean keyboard type.
;; Verbose mode of hangul input method is needless for most Korean users.
(add-hook
 'input-method-activate-hook
 (function (lambda ()
             (cond ((string= current-input-method "korean-hangul")
                    (setq default-korean-keyboard ""
                          input-method-verbose-flag nil
                          input-method-highlight-flag nil))
                   ((string= current-input-method "korean-hangul3")
                    (setq default-korean-keyboard "3"
                          input-method-verbose-flag nil
                          input-method-highlight-flag nil))))))
;; (add-hook
;;  'input-method-inactivate-hook
;;  (function (lambda ()
;;              (if (or (string= current-input-method "korean-hangul")
;;                      (string= current-input-method "korean-hangul3"))
;;                  (setq input-method-verbose-flag 'default
;;                        input-method-highlight-flag t)))))

;;===========================================================
;; AUCTeX Setting
;;===========================================================
(setq TeX-auto-save t)
(setq TeX-parse-self t)
;; If use \include or \input, for multi-file document.
(setq-default TeX-master nil)
;(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)
;(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)

;;settings for bib-cite.el
;;**************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(autoload 'turn-on-bib-cite "bib-cite")
;(add-hook 'LaTeX-mode-hook 'turn-on-bib-cite)

;;(when (eq system-type 'windows-nt)
;; (require 'tex-mik))
(add-hook 'LaTeX-mode-hook
  (function
    (lambda ()
      ;; bib-cite
      (turn-on-auto-fill)
      (turn-on-reftex)
      (turn-on-bib-cite)
      (outline-minor-mode)
      (TeX-source-specials-mode 1)
      ;; PDF파일이 있으면 emacs가 자동으로 PDF mode를 on해서
      ;; pdflatex로 컴파일하게 된다. 이것을 disalbe한다.
      ;; 제대로 동작하지 않는다.
      ;; 2006-07-01
      ;; 파일 Local Variables에 TeX-PDF-mode: nil을 추가한다.
      (TeX-PDF-mode nil)
      (add-to-list 'TeX-expand-list '("%a" file "pdf" t))
      
      ;; (add-to-list 'TeX-command-list
      ;;        (list "LaTeX" "latex --src-specials \\nonstopmode\\input{%s}"
      ;;              'TeX-run-LaTeX nil t))
      (add-to-list 'TeX-command-list
             (list "TeXify" "texify --src %t" 'TeX-run-command nil t))
      (add-to-list 'TeX-command-list
                   (list "Ghostview" "C:\\PROGRA~1\\Ghostgum\\gsview\\gsview32.exe %f"
                         'TeX-run-command nil t))
      (add-to-list 'TeX-command-list
                   (list "dviPS" "dvips %d -o %f"
                         'TeX-run-command nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "dvipdfm" "dvipdfmx %d" 'TeX-run-command nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "BibTeX" "bibtex %s" 'TeX-run-BibTeX nil nil))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "Index" "makeindex %s" 'TeX-run-command nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "dviPS-landscape" "dvips %d -t landscape -o %f" 'TeX-run-command nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "Check" "lacheck %s" 'TeX-run-compile nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "GS PDFView" "C:\\gs\\Ghostgum\\gsview\\gsview32.exe %a" 'TeX-run-command nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "Acrobat" "C:\\PROGRA~1\\Adobe\\ACROBA~2.0\\Reader\\AcroRd32.exe %a" 'TeX-run-command nil t))
      ;;(list "Acrobat" "AcroRd32.exe %a" 'TeX-run-command nil t)
      (add-to-list 'TeX-command-list
                   (list "Foxit" "C:\\PROGRA~1\\FOXITS~1\\FOXITR~1\\FOXITR~1.EXE %a" 'TeX-run-command nil t))
      (add-to-list 'TeX-command-list
                   (list "DVIPDFMx" "dvipdfmx %d" 'TeX-run-command nil t))
      (add-to-list 'TeX-command-list
                   (list "dh-Index" "makeindex-dhucs -s dhucs %s" 'TeX-run-command nil t))
      ;; (add-to-list 'TeX-command-list
      ;;              (list "DVISearch" "yap.exe -1 -s %n%b %d" 'TeX-run-command nil t))
      (add-to-list 'TeX-command-list
                   (list "DVISearch" "c:\\TeX\\dviout\\dviout.exe -1 %d # %n %b" 'TeX-run-command nil t))
      (add-to-list 'TeX-command-list
                   (list "DviOut" "c:\\TeX\\dviout\\dviout.exe %d"
                         'TeX-run-command nil t))

      ;;; key-binding
      (define-key LaTeX-mode-map [f9] 'do-LaTeX)
      (define-key LaTeX-mode-map [f10] 'do-DVISearch)
      (define-key LaTeX-mode-map [f11] 'do-DVIPDFMx)
      )))

(defun do-LaTeX ()
  "LaTeX the curent file."
  (interactive)
  (TeX-command "LaTeX" 'TeX-master-file))
(defun do-DVISearch ()
  "Forward search LaTeX the current file position."
  (interactive)
  (TeX-command "DVISearch" 'TeX-master-file))
(defun do-DVIPDFMx ()
  "Running DVIPDFMx"
  (interactive)
  (TeX-command "DVIPDFMx" 'TeX-master-file))


^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-05-17 00:53:26
Processing time 0.0947 sec