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 세션을 다시 시작하는 것이 좋다.