예전에 Emacs for OSX 관련 설치글에서 File Dired Mode 에서 한글이 깨지는 문제는

(require 'ucs-normalize)
(set-file-name-coding-system 'utf-8-hfs)

위 내용을 .emacs 에 써주면 된다고 했습니다. 그런데 shell-mode 에서 한글이 제대로 출력이 안되는 이슈가 존재합니다.

역시 .emacs 에

(setq default-process-coding-system '(utf-8-hfs . utf-8-hfs))

와 같은 내용을 써주면 해결됩니다.

  세월이 흘러감에 따라서 변하지 않는 것이 없거늘 어찌 Emacs 가 변하지 않으리라 생각했던가..

말 그대로 입니다. 세월이 흘러 흘러 Emacs 가 24.x 대가 나오기 시작한지도 꽤 여러해가 지났습니다. 그런데 저는 과거의 설정파일을 그대로 사용하고 있었더군요. 문제 없이 사용하고 있었던 이유는 최근 쓰고 있던 OSX 가 버젼업이 되면서 한글 '나눔고딕'이 기본으로 포함되서 별 의도하지 않게 사용하고 있었습니다.

최근 Clojure 에 관한 Online 책을 보다가 그 저자가 설정한 Emacs 설정파일을 제꺼에 포함시키는 과정에서 기본 폰트 크기를 변경시키는 로직이 있는데 제가 처음 보는 함수를 쓰고 있더군요. 찾아보니 제가 기존 설정파일에서 쓰고 있었던 폰트 설정 방법은 사라졌더군요.

예전의 폰트 설정 방법 의 내용이 현행화를 필요로 한다는 점입니다.

(set-face-font 'default "Monaco-10")
(set-fontset-font "fontset-default" '(#x1100 . #xffdc)
                  '("NanumGothicOTF" . "iso10646-1"))
(set-fontset-font "fontset-default" '(#xe0bc . #xf66e)
                  '("NanumGothicOTF" . "iso10646-1"))
(set-fontset-font "fontset-default" 'kana
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font "fontset-default" 'han
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font "fontset-default" 'japanese-jisx0208
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font "fontset-default" 'katakana-jisx0201
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))

이 방법이 아주 틀린건 아니지만 살짝 달라졌습니다. 한자나 일본어 설정은 동일하게 동작하는 것 같습니다. 다만 기본 폰트 설정 방법이 변했습니다.

(when (eq system-type 'darwin)

  ;; default Latin font (e.g. Consolas)
  ;; but I use Monaco 
  (set-face-attribute 'default nil :family "Monaco")

  ;; default font size (point * 10)
  ;;
  ;; WARNING!  Depending on the default font,
  ;; if the size is not supported very well, the frame will be clipped
  ;; so that the beginning of the buffer may not be visible correctly. 
  (set-face-attribute 'default nil :height 130)

  ;; use specific font for Korean charset.
  ;; if you want to use different font size for specific charset,
  ;; add :size POINT-SIZE in the font-spec.
  (set-fontset-font t 'hangul (font-spec :name "NanumGothicCoding"))

  ;; you may want to add different for other charset in this way.
  )

이 소스는 KLDP 의 유명한 Emacs 고수이신 cinsk 님의 설정 내용입니다. 제가 좋아하는 폰트로 살짝 고쳤습니다. 다시 말씀드리지만 이건 Emacs 24.x 의 설정 방법입니다.

그리고 "NanumGothicCoding" 폰트는 OSX 에 기본으로 설치가 되어 있지 않습니다. 기본으로 설치 되어 있는 폰트는 "Nanum Gothic" 입니다. 일부러 한글 폰트를 "NanumGothicCoding" 으로 설정한 이유는 나중에 설명하기로 하고 일단 '나눔고딕코딩' 폰트를 다운 받아야 합니다.

나눔고딕코딩 폰트 받기

받아서 서체관리자를 이용해서 설치해 주시고 위의 설정을 .emacs 에 설정해 주면 영문:Monaco , 한글:나눔고딕코딩 으로 설정이 됩니다.

여기까지가 Emacs 24.x 에서 한글 폰트 설정하는 방법이였고. 이제 다른 목적인 Org Mode 에서 한글 테이블 만들 때 표 제대로 보이는 방법에 대해서 이야기 하겠습니다.

Org Mode 는 Ascii 형식의 테이블을 지원합니다. 이게 은근히 편해서 종종 쓰곤하는데 심각한 문제가 있습니다. 한글을 쓰면 테이블 표에 있는 셀(Cell) 크기가 맞질 않습니다. 그래서 궁여지책으로 영문으로 테이블 표를 작성해서 쓰곤 했는데. Emacs 24.x 에 한글을 설정하고 나서는 갑자기 한글로 된 표를 쓰고 싶어졌습니다.

온갖 삽질끝에 이유를 알아냈는데 (어떻게 보면 당연한 거지만)

기본적으로 테이블이 깨지는 이유는 한글 - 영문 폰트의 width 의 비율이 일치하지 않기 때문입니다. 즉 이상적으로는 영문 2자에 한글 1자의 폭이 일치해야 하지만 미묘하게 한글 1자의 폭이 작습니다.

따라서 폰트 크기를 재 설정해 주면 간단하게 해결 됩니다. (이 간단하게 라는 말을 쓰기 위해 고생한 걸 생각하면…)

높이 비율로 크기를 맞춰야 하는데 'Monaco' 크기가 (:height)가 130 일때 'Nanum Gothic' 은 size 가 17 , 'NanumGothicCoding' 은 size 가 16 이어야지 비율이 맞습니다. 실제로 적용은 face-font-rescale-alist 변수를 이용해서 적용해 줍니다.

(setq face-font-rescale-alist
      '((".*hiragino.*" . 1.2)
        ("NanumGothicCoding" . 1.2307692307692308)))

와 같이 .emacs 에 설정을 넣어주면 됩니다.


위와 같이 테이블이 깨지지 않고 보여집니다. 


저는 터미널 (Terminal) 에서 작업을 많이 합니다. 민트를 깔아보고 놀랐던 이유가 터미널 프로그램이 이뻐서 였습니다. 그래서 기본 설정이 '흰 바탕에 검은색 글씨' 였는데 바로 '검은색 바탕에 회색 글씨' 로 바꾸어 줬습니다. 역시 검은색이 마음이 안정된다고나 할까요?

그랬는데 한글 언어팩을 설치하고 났더니만 터미널 상에서 한글이 정말 보기 싫게 변하더군요. 그래서 나눔고딕 폰트를 설치해주고 (저번 아티클 참조)

/etc/fonts/conf.d/69-language-selector-ko-kr.conf

를 열어서


	
    
		
			monospace
		
		
			Dejavu Sans Mono
			NanumGothic
		
	

위와 같이 추가해 주면 됩니다.  (정확히는 이미 되어 있는 것을 변경해 주는 것입니다)


그러면 이렇게 나눔고딕 형태로 한글 폰트가 바뀌게 됩니다.


http://storymate.tistory.com/118

위의 방법으로 했을 때도 한글이 설정이 안되는 경우 (제 경우에 그랬습니다) 에 쓸만한 방법입니다. 저는 그냥 나눔고딕 폰트를 설치해 주니까 한방에 해결됐습니다.

$ sudo apt-get install ttf-nanum


폰트가 설정이 안되서 발생하는 문제처럼 보이더군요. 아 그런데 민트에서는 파이어 폭스가 훨씬 이쁘네요. 전 모든 북마크 세팅이 전부 크롬에 되어 있는지라 크롬을 메인으로 쓰고 있지만 (결국 크롬하고 파폭 두개를 다 쓰게 됐습니다)


 이맥스 (Emacs) 에서 영문 폰트는 기본적으로 지정해 줄 수가 있습니다. 한글하고 일어 한문은 지정하는 여러가지 방법이 있지만 이 방법이 가장 쉬운듯 해서 정리해 봤습니다. 

EDIT:
  나눔 고딕 폰트 설치를 위해서 먼저 나눔고딕 폰트를 설치해야 할 필요가 있겠지요?
  나눔고딕 페이지 이동

osx 10.6 (SnowLeopard)
테스트 클라이언트 (Client) : Aquamacs 2.1 

이고 .emacs 파일에 다음과 같이 써 주면 됩니다. 


  (set-fontset-font "fontset-default" '(#x1100 . #xffdc)  '("NANumGothicCoding" . "unicode-bmp")) ;
  (set-fontset-font "fontset-default" '(#xe0bc . #xf66e)  '("NanumGothicCoding" . "unicode-bmp")) ;
  (set-fontset-font "fontset-default" 'kana '("AppleGothic" . "unicode-bmp"))
  (set-fontset-font "fontset-default" 'han '("AppleGothic" . "unicode-bmp"))


EDIT : 저보다 더 깔끔하게 수정하신 분이 계셔서 그분의 블로그를 링크합니다.
  원문 보기 : http://seorenn.blogspot.com/2011/04/emacs_24.html

(set-face-font 'default "Monaco-12")
(set-fontset-font "fontset-default" '(#x1100 . #xffdc)
                  '("NanumGothicOTF" . "iso10646-1"))
(set-fontset-font "fontset-default" '(#xe0bc . #xf66e)
                  '("NanumGothicOTF" . "iso10646-1"))
(set-fontset-font "fontset-default" 'kana
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font "fontset-default" 'han
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font "fontset-default" 'japanese-jisx0208
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))
(set-fontset-font "fontset-default" 'katakana-jisx0201
                  '("Hiragino Kaku Gothic Pro" . "iso10646-1"))

(setq face-font-rescale-alist
      '((".*hiragino.*" . 1.2)
        (".*nanum.*" . 1.3)))


제 설정하고 바뀐 부분은 기본 폰트를 지정해 주신 것 (보통은 지정 안해주면  Monaco 를 쓰게 되어 있으나 나중에 혹시 Consolas 로 바꿀때 사용할려고 남겨뒀습니다. 그리고 폰트 이름이 바꼈습니다. (저는 예전 폰트 이름 그대로 사용중) 그리고 크기 조절이 들어간 것이 차이가 있습니다.


한글은 나눔고딕 코딩으로 지정해 줬습니다. 그런데 아쉬운건 나눔고딕 코딩이 한자 폰트가 빠졌다는 것이겠지요. 그래서 다른 코딩 폰트를 지정해 줘야 하는데 영문 폰트로 알아내는 것이 귀찮더군요. 그래서 제일 만만한 애플 고딕으로 지정해 줬습니다. 



테스트 화면 입니다. 






막상 설치하고 나면 세벌식으로 설정하는 방법을 몰라서 헤매게 됩니다. 그냥 터미널 실행하시고

/usr/lib/ibus-hangul/ibus-setup-hangul


입력하시면 한글 입력방식 설정하는 창이 뜹니다. 원하시는 입력방식으로 설정하시면 됩니다.




자꾸 어맹뿌 , 어맹뿌 하길래 대체 가카가 왜 어맹뿌지? 했는데 서명란을 보니.. .... 


 
snow leopard 의 세상이 왔습니다. 

EDITED: 온지는 한참 됐습니다.... 예전 글 갱신한 것이라서요

진짜 왔는가는 별도로 하고 배달된 스노우 레오파드를 깔아줬습니다. 저는 맥빠가 아니니 표범 그려진 껍데기 보면서 하앍거리는 일은 전혀 없었구요

기존의 깔려 있는 osx leopard 위에 걍 덮어서 씌웠습니다. 처음에는 별 감흥없이 돌아가더군요 메뉴바 같은게 바뀐거 같긴 한데 잘 모르겠고 암튼 그냥 새로운 '맥'이겠거니 하고 사용하고 있었는데 결국 문제가 발생했습니다.

svn 이 깔리면서 기존에 제가 패치해둔게 동작을 안하더군요. 스노우 레오파드가 되면서도 그 문제 많은 utf-8 문제를 해결을 안했더군요 (아마 영원히 안할듯 싶네요..) 그래서 깔려있던 subversion source 를 컴파일 해서 다시 사용하려고 했는데 기존에 깔려 있던 라이브러리들이 32bit 라 링크에서 문제가 생기더군요.

이거저거 하다가 귀찮아서 가비얍게 기존 버젼을 포맷해주고 다시 '스노우 레오파드'를 깔아줬습니다. 그리고 다시 시작하는 마음으로 경건하게 svn 을 돌려봤는데 기존에 제가 포스팅 했던 문제가 고쳐지지 않았더군요. 그래서 다시 subversion 을 다운 받았습니다.

1. subversion 소스만 받아서 컴파일을 해보니 컴파일이 되지가 않더군요.

2. subversion - depends 소스 까지 받아서 합쳐서 컴파일 하니 'svn st' 쓸 때마다 segmentation fault 가
발생하더군요.

3. mac port 를 이용해서 subversion 을 설치하면 새로 컴파일 된 버젼이 깔리기는 하는데 snow leopard 안에
포함된 버젼과 똑 같은 svn 이 설치되더군요.

자 여기까지는 사족이고 이제부터가 진짜입니다.

== snow leopard 에 한글 파일 문제 없는 subversion 설치하기 == 

EDITED: subversion 1.6.15 로 업그레이드에 맞춰서 다시 적용합니다

1. mac port 로 dependency 문제를 해결한다.  snow leopard 안에 포함된 subversion 과 같은 svn 이
설치됩니다. (1.6.15 버젼이 설치됨)

sudo port install subversion

2. 이곳 에서 소스를  받습니다. subversion-deps-1.6.15.tar.gz 와 subversion-1.6.15.tar.gz 를 각각 다운 받고 다른 폴더 에 저장합니다.

subversion-1.6.15 가 각각 생기는데 subversion-deps-1.6.15.tar.gz 를 압축 풀었을 때 생기는 subversion-1.6.15 밑의 neon 디렉토리를 subversion-1.6.15.tar.gz 를 압축 풀었을 때 생기는 디렉토리로 이동시킨다.

neon 을 포함시켜주는 이유는 http 나 https 방식으로 접근이 가능한 클라이언트를 만들기 위해서 입니다.

3. 예전 방식 을 이용해서 소스를 패치해줍니다. (아래쪽에 1.6.15 버젼에 맞춘 패치 파일 있음)

patch -p0 < utf8_mac.patch
cd subversion-1.6.15
./configure --with-ssl
make
sudo make install

make 에서 테스트 진행중에 error 가 발생해서 build 가 멈추지만 무시하시고 바로 다음 명령을 진행하시면
됩니다. (버클리 디비 없다고 어쩌구 에러 생기면 무시해 주세요)


매번 패치하는 것도 지겨운데 애플이나 subverion 이나 한국이 관심 대상 밖인 것은 알지만 이 문제는 CJK
들의 공통적인 문제일텐데 왜 아무런 대책이 없나 궁금합니다.





+ Recent posts