X에 글꼴을 추가하는 방법은 여러 가지가 있다. XFree86은 글꼴을 찾아볼 여러 디렉터리와 글꼴 서버의 목록인 글꼴 경로를 갖고 있다. 글꼴 서버란 XFree86가 글꼴을 사용할 수 있도록 해주는 백그라운드 프로세스다. 글꼴 서버의 장점은 원격 디스플레이에도 글꼴을 보내 줄 수 있다는 점이다.
최근 xfs
("X font server")가 트루타입 글꼴을 지원하고,
독립적인 (stand-alone) 프로그램으로 동작하도록 패치가 이루어졌다.
패치된 버젼은 레드햇과 레드햇에 기반한 배포판에 들어있으며, XFree86의
3.9.17에 포함되어 있다. (이것이 이 글을 쓰는 시점의 최신 버젼이다.
패치된 xfs는 XFree86 4.0에도 일부분으로 포함될 예정이다.)
xfs
는 사실 XFree86의 표준 글꼴 서버이며, 그 소스 코드는 XFree86의
소스 트리의 일부이다.
하지만, 최근의 배포판에는 XFree86과 독립적으로 동작하는 버젼이 들어있다.
트루타입을 지원하는 패치가 가해진 독립적인 X 글꼴 서버는 아마도 현재 가능한
최선의 글꼴 관리 방법일 것이다. (트루타입에 대한 지원은 xfsft
라
불리는 글꼴 서버에 의해 이루어진다.) 이런 방식은 다음과 같은 장점을 갖는다.
chkfontpath
라는
명령행 유틸리티를 이용하여 글꼴 경로의 편집이 가능하다. 이점은
사용자를 더 편하게 할 뿐아니라, 꾸러미를 만드는 쪽에서도 더 다양한
스크립트를 이용하여 더욱 안전하게 꾸러미를 만들 수 있도록 한다.여러 배포판이 저마다 다른 설정을 가지고 있기 때문에, 한 가지 방식으로 모든 배포판에 대응할 수는 없다. 다음과 같은 세 가지 그룹으로 나누어 설명하자.
xfs
가 들어있는
배포판 사용자. 이 그룹에는 레드햇 사용자와, 맨드레이크, 터보리눅스,
인디펜던스 등 레드햇 기반의 배포판 사용자가 포함된다.
이 그룹은 트루타입과 타입1 글꼴 양쪽을 xfs
를 통해 설치하는
것이 가장 현명한 전략이다.xfs
는 들어있지만,
트루타입 지원은 안되는 배포판도 있다. (XFree86은 3.9.17 버젼 부터
트루타입을 지원하고 있다는 점에 유의하라.)
데비안이 이런 경우에 속하는데, 이런 배포판의 사용자의 경우에는 타입1
글꼴을 설치하는 데에는 xfs
를 쓰고, 트루타입 글꼴은
xfstt
로 설치하는 것이 최선이다. 데비안 사용자는
TrueType Fonts in Debian mini-HOWTO
에서 트루타입 글꼴 설치에 대한 정보를 찾아볼 수 있다. xfs
를 갖고 있지 않다면 타입1 글꼴이 들어있는 디렉터리를
XFree86의 글꼴 경로에 추가하고 xset을 이용함으로써 타입1 글꼴을
설치해야 한다. 트루타입은 xfstt
로 설치해야 한다.XFree86은 글꼴 경로라 불리는 글꼴이 들어있는 디렉터리(혹은 서버들 -- 여기에 대해서는 나중에 더 설명한다)의 목록을 검색함으로써 글꼴을 찾는다. 응용 프로그램이 어떤 글꼴을 요구하면, XFree86은 그 글꼴이 발견될 때 까지 글꼴 경로에 들어있는 디렉터리들을 하나 하나 검색한다. 따라서 글꼴을 사용할 수 있도록 하려면, 글꼴 경로를 지정해야 한다. 다음의 명령으로 글꼴 경로에 임의의 디렉터리를 추가할 수 있다.
xset fp+ directory일단 이 명령을 수행한 다음에는 X 서버가 가능한 글꼴을 다시 조사하도록 다음의 명령을 내려야 한다.
xset fp rehash이 명령이 자동적으로 수행되기를 원한다면, 자신의
.xinitrc
파일에
넣어두어야 한다. (혹은 .Xclients
나 .xsession
파일에
넣어도 된다. 어느 파일에 넣는가는 X를 실행시키는 방식에 따라 다르다.
혼란을 피하기 위해서는 이 파일들을 심볼릭 링크시켜두도록 한다.)
이런 명령들이 자동적으로 실행되도록 하는 또다른 방법은 XF86Config 파일을
편집하는 것이다. 예를 들어 /usr/share/fonts/myfonts
디렉터리를
X가 시작될 때 글꼴 경로에 추가하려면 XF86Config
를 다음과 같이
편집한다.
... Section "Files" ... FontPath /usr/share/fonts/myfonts ... EndSection ...XF86Config를 편집했을 때의 장점은 시스템 전체에 걸쳐 변화를 준다는 것이다.
타입1 글꼴을 X에서 사용가능하게 하는 가장 쉬운 방법은 Type1inst 유틸리티의 도움을 받는 것이다. 이 유틸리티는 타입1 글꼴을 X에서 쓰기 위해 필요한 fonts.dir와 fonts.scale 파일들을 자동적으로 만들어주는 펄스크립트이다. 간단히 글꼴 디렉터리로 이동해서, type1int를 수행한다.
cd directory type1inst
xfs
꾸러미를 가지고 있을 경우이제 타입1 글꼴을 글꼴 경로에 추가해야 한다. 이미 독립적인
xfs가 수행되고 있다면, xfs
의 설정 파일을
편집하면 된다.
레드햇 사용자라면
chkfontpath 를 사용하기만
하면 된다. 형식은 다음과 같다.
chkfontpath --add directory
이제 설치한 타입1 글꼴을 X에서 쓸 수 있게 되었다. 다음에는
xset fp rehash를 수행하기만 하면, X가 새로운 글꼴을 찾을 수 있게 될 것이다.
xfs
꾸러미가 없을 경우이 경우에는 앞에서 설명한 것과 같이, 새로운 글꼴이 들어있는 디렉터리를 글꼴 경로에 추가해 주어야 한다.
트루타입 글꼴을 추가하는 것은 타입1보다 어렵다. 트루타입 글꼴을 지원하는 글꼴 서버를 갖고 있어야 하기 때문이다. 이런 기능을 제공하는 것에는 xfstt와 xfs의 두 가지 글꼴 서버가 있다.
xfstt
는 트루타입 글꼴 서버이다. 이쪽이 설정이 간편하고 상당히
유용함에도 불구하고, xfs
가 더 인기를 얻어가는 듯하다.
xfstt
에 비해 볼 때, xfs
의 주된 장점은 타입1과 트루타입
양쪽을 모두 지원한다는 점이다.
xfstt를 사용하려면 다운받아서 설치하기만 하면 된다. rpm 기반의 배포판이라면 http://independence.seul.org/ 에 잘 패키징된 버젼이 있다. xfstt를 설치한 다음에는 다음과 같이 해 주어야 한다.
xfstt --sync
를 실행한다. 이 명령은 xfstt에게
글꼴을 찾아서 fonts.dir
파일을 만들라고 하는 것이다.unix/:7100
를 글꼴 경로에 더한다.rpm -ql xfstt |grep init
를 이용할 수 있다.
그리고 나서 /etc/rc.d/init.d/xfstt
등의 이름을 가진 파일을
살펴보자.) 만약 시작 스크립트가 없다면, /etc/rc.local
디렉터리에
다음의 두 줄(시스템에 따라 조금 다를 수도 있다)을 가진 스크립트를 만들어
넣으면 된다.
/usr/X11R6/bin/xfstt --sync /usr/X11R6/bin/xfstt &
근래 나오는 리눅스 배포판 중에는 독립된 프로그램으로 작동하도록 설정된
X 글꼴 서버 xfs
가 들어 있는 것들이 있다. 특히, 레드햇 및
레드햇 기반의 배포판들이 이렇게 트루타입을 지원하도록 컴파일된 모듈방식의
xfs
를 사용하고 있다.
데비안에도 xfs
가 들어있지만, 데비안의 xfs
는 트루타입을
지원하도록 되어 있지 않다.
xfs
를 독립적인 서버로 돌리는 것은 여러 가지 이점을 갖고 있다.
특히 트루타입을 지원하도록 컴파일되어 있다면 장점은 더욱 두드러진다. 주된
장점은 글꼴 서버가 더이상 X 서버에 결합되어 있지 않기 때문에, 원격 디스플레이로
글꼴을 제공할 수 있다는 점이다. 아울러 글꼴 경로를 변경하는 것도 훨씬
쉽게 되었다.
xfs
경로xfs
는 글꼴 서버로서 자체의 글꼴 경로를 갖는다. 이 패스가
X에서의 글꼴 사용이라는 전체 그림 상의 어느 부분에 해당되는지 궁금할 것이다.
xfs
는 다음과 같은 방식으로 작동한다.
XFree86의 글꼴 경로에 unix/:port
를 추가함으로써 xfs
글꼴 서버를 XFree86의 글꼴 경로에 넣는다. 이렇게 하면 자동적으로
xfs
의 글꼴 경로 안에 있는 모든 글꼴을 XFree86에서 사용할 수 있게
된다.
xfs
의 글꼴 경로는 xfs
의 설정 파일에 의해 결정되는데,
이 설정 파일은 레드햇에서는 /etc/X11/fs/config
이고, 데비안에서는
/etc/X11/xfs/config
이다.
레드햇 사용자라면 이 파일을 직접 편집할 필요없이 chkfontpath
라는
유틸리티를 사용할 수 있다.
사용법은 간단하다.
chkfontpath --add directory다른 배포판의 사용자는 다음과 같이 설정 파일을 편집할 수 있다.
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled, ... /usr/share/fonts/my_new_fonts/, ... /usr/share/fonts/some_other_directory # in 12 points, decipoints default-point-size = 120 ...위의 예는
/usr/share/fonts/my_new_fonts/
디렉터리를 xfs
의
글꼴 경로에 더하는 것이다. 디렉터리 목록의 마지막 줄 끝에 쉼표가
없다는 것에 주의하여야 한다.
글꼴 경로를 이렇게 바꾼 것이 효과를 내기 위해서는 xfs
를 다시
시작시켜야 한다. xfs
를 다시 시작시킨 다음에 X를 다시 시작시키는
것도 좋은 생각이다.
xfs
에 글꼴을 설치하기xfs
에서 글꼴을 사용하기 위해서는 다음과 같은 단계를 거쳐야 한다.
type1inst
를 글꼴 디렉터리 안에서
실행하여 새 디렉터리를 서버가 사용할 수 있도록 준비한다.ttmkfdir -o fonts.scale mkfontdir를 새 글꼴이 들어있는 디렉터리에서 실행함으로써, 새 디렉터리를 서버가 사용할 수 있도록 준비한다. ( 모든 배포판에 트루타입을 지원하는 xfs가 있지는 않다는 점을 기억하자!)
ttmkfdir
는 freetype 꾸러미의 일부이다.xfs
의 검색 경로에 추가할 수 있다.
레드햇 기반의 배포판을 쓰고 있다면 chkfontpath
유틸리티를
사용해서 이 작업을 할 수 있다.
다른 배포판의 경우에는 xfs
설정 파일을 편집해서 추가한다.xfs
가 이미 설치되어 있다면, xfs
가 어느 포트에서
작동하고 있는지 알아야 한다. 다음과 같이 한다.
ps ax|grep xfs
xset -q
unix:/port_number
비슷한 내용을 포함하고
있다면 xfs는 제대로 설정된 것이다. 여기서 port_number란
서버가 돌아가고 있는 포트다. 만약 제대로 설정 되어 있지 않다면,
다음의 방법으로 이 부분을 XFree86의 글꼴 경로에 더해 주어야 한다.
xset fp+ unix/:port_number xset fp rehash앞서 설명한 바와 같이 자신의
.xinitrc
를 편집함으로써 위의
글꼴 경로를 영구적으로 XFree86의 글꼴 경로에 포함시킬 수도 있다.
시스템 전체에 걸쳐 XFree86의 글꼴 경로에 포함시키려면, 시스템의
XF86Config 파일의 Files 절에 FontPath "unix:/port_number"
라는
줄을 추가한다. (시스템의 XF86Config는 /etc/X11/XF86Config
나
/etc/XF86Config
, /usr/X11R6/lib/X11/XF86Config
같은
파일이다.)
다음은 하나의 예이다.
... Section "Files" ... FontPath "unix/:-1" ... EndSection ...
xfs
가 제대로 설치되었다면, 다음과 같이 xfs
를 다시
시작하도록 한다.
/etc/rc.d/init.d/xfs restart
xfs
를 다시 시작한 다음에는 X 세션을 다시 시작하는 것이 좋다.