3.1 Type1폰트
X11에 기본으로 포함된 폰트들은 전형적인 출판프로그램의 것보다 덜하다. 큰폰트는 덜 전문적으로 제작된것처럼 보이고, 적은폰트들은 넷스케이프에서는 거의 알아볼 수 없는 것들도 있다.
어쨋든 몇몇은 공짜이고, 고품질은 Type1(PostScript)폰트를 사용할 수 있다.
일예로 URW폰트컬렉션(x11-fonts/urwfonts)은 고품질의 표준 Type1폰트(Time Roman, Helvetica, Palatino등)를 포함하고 있다.
Freefont컬렉션(x11-fonts/freefonts) 는 많은 폰트를 포함하고 있지만 대부분은 Gimp와 같은 그래픽용 소프트웨어에서 사용될 것이며, 화면용 폰트로는 완전하지가 않다.
게다가 X11에서는 최소한은 노력으로 트루타입폰트를 사용할 수 있다.
자세한것은 X(7) 메뉴얼페이지를 보거나 핸드북의 트루타입폰트 섹션을 참고하세요.
포트컬렉션에서 Type1폰트 컬랙션을 설치하려면 다음의 명령을 입력하세요...
# cd /usr/ports/x11-fonts/urwfonts
# make install clean
freefont나 다른 컬렉션도 마찬가지이다. X서버는 이러한 폰트들을 검출해내고, X서버 /etc/X11/(Xorg:xorg.conf, XFree86:XF86Config) 설정파일에 아래 정보를 추가한다.
FontPath "/usr/X11R6/lib/X11/fonts/URW/"
또는 , X 세션 실행시에 다음의 명령라인을 입력한다.
% xset fp /usr/X11R6/lib/X11/fonts/URW
% xset fp rehash
이 방법은 X세션이 닫히면 잃어버리며, 그래서 시작파일(~/.xinitrc : 일반 startx세션, ~/.xsession : xdm같은 그래픽로긴관리자를 통해 로긴할경우)에 추가를 해놓는다.
3번째는 새로운 /usr/X11R6/etc/fonts/local.conf 파일에 다음섹션의 anti-aliasing을 사용하는 법이다.
3.2 트루타입폰트
XFree86 4.X 와 Xorg는 트루타입폰트를 지워하도록 되어있다.
이는 두개의 다른 모듈이 하나의 기능으로 가능하도록 할 수 있게 되어있다. freetype모듈은 이 예제에서 사용되어진다. 왜냐면 이것이 백-엔드에서 다른 폰트렌더링에 더 알맞기 때문이다.
freetype폰트 모듈은 "/etc/X11/xorg.conf " 나 "/etc/X11/XF86Config" 파일의 'Module' 섹션에 다음의 라인을 추가하면 된다.
Load "freetype"
XFree86 3.3.x 에서는 트루타입폰트서버는 필요에 의해서 분리했다. Xfstt는 일반적으로 앞의 목적을 위해서 사용되었다. Xfstt를 설치하기 위해서는 x11-servers/Xfstt 포트를 설치하면 간단하게 된다.
트루타입폰트를 위한 디렉토리, 예를 들면 /usr/X11R6/lib/X11/fonts/TrueType 을 만들고, 현재 디렉토리에 있는 모든 트루타입폰트를 복사한다. 트루타입폰트는 매킨토시에서 직접가지고 올 수는 없고, UNIX/MS-DOS/Windows 포맷만이 X11에서 사용될 수 있다. 한번 복사한 후, "ttmkfdir"을 사용해서 fonts.dir 파일을 생성하면, X 폰트 생성기(렌더러)가 이 새로운 파일들을 알아서 설치할 것이다.
ttmkfdir은 FreeBSD x11-fonts/ttmkfdir 같은 포트컬렉션으로부터 얻을 수 있다.
# cd /usr/X11R6/lib/X11/fonts/TrueType
# ttmkdir > fonts.dir
다음으로 TrueType 디렉토리에 폰트경로를 추가한다.
이것은 아래의 방법과 같이 하면 되고, 이 방법은 위에 기술된 Type1 과 같은 방법이다.
% xset fp /usr/X11R6/lib/X11/fonts/TrueType
% xset fp rehash
또는 xorg.conf 나 XF86Config 파일에 FontPath 줄을 추가한다.
이렇게 설치된 트루타입폰트들은 넷스케이프, Gimp, StarOffice 또는 다른 모든 X프로그램에서 인식이 될것이다.
극히 작은 폰트나 극히 큰 폰트들도 이전보다 나아보일것이다.
3.3 Anti-Aliased Fonts (안티알리아스드 폰트)
Joe Marcus Clarke 가 갱신함
안티알리아싱은 XFree86 4.0.2 때부터 X11에서 사용할 수 있게 되었다.
하여간 폰트 설정은 XFree86 4.3.0 이 소개되기 전까지는 귀찮은 작업이었다.
XFree86 4.3.0 이 나오면서부터 X11의 모든 폰트가 /usr/X11R6/lib/X11/fonts/ 와 ~/.fonts 디렉토리에 있게되고 Xft-aware 프로그램들이 안티알리아싱을 자동적으로 사용가능하게 되었다.
모든 프로그램이 Xft-aware적인 것은 아니지만, 많은 것들이 Xft의 지원을 받게 되었다. Xft-aware적인 것의 예를 들면 Qt 2.3 과 그이상버전(KDE 데스크탑을 위한 툴킷), GTK 2.0가 그이상버전(GNOME 데스크탑을 위한 툴킷)과 Mozilla 1.2 이상버전들이다.
폰트를 조절하거나 또는 안티알리아싱 속성을 설정하기에 따라서 안티알리아스드되기도 하고, /usr/X11R6/etc/fonts/local.conf파일을 생성(존재하는것을 수정) 해서 만들기도 한다.
Xft폰트시스템의 더 나은 방법은 이 파일을 튜닝할 수 있다는 것이다.
이 섹션은 단지 약간의 가능성만 보여준다. 더 자세한 사항은 fonts-conf(5)를 보기 바랍니다.
이 파일은 아래와 같은 XML포맷으로 되어 있고 DOCTYPE로 정의된 XML헤더를 따르고 있으며, <fontconfig>라는 태그를 사용한다.
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
이전 상태에 따라,/usr/X11R6/lib/X11/fonts/과 처럼 ~/.fonts/ 에 있는 모든 폰트는 Xft-aware 프로그램에서 사용가능하게 만들어졌다.
만약 이런 두개의 디렉토리 트리외에 다른 디렉토리를 더하고자 하면, 다음과 같은 라인을 /usr/X11R6/etc/fonts/local.conf 파일에 추가하면 된다.
<dir>/path/to/my/fonts</dir>
새 폰트를 추가하거나 새폰트 디렉토리를 추가한 후, 아래의 명령으로 폰트 캐시를 리빌드해야한다.
# fc-cache -f
안티 알리아싱은 경계를 약간 흐리게 만들어, 아주 작은 텍스트와 큰 텍스트의 계단현상을 제거해줌으로 해서 가독성을 높여주지만, 일반 텍스트에 적용하면 눈의 피로의 원인이 될 수 있습니다.
안티알리아싱을 14포인보다 작은 폰트사이즈는 제외하고자하면 애래의 문장을 추가하세요.
<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
어떤 모노스페이스된 폰트의 간격은 안티알리아싱에 부합하지 않을수도 있다.
특히 KDE에서... 이런 문제를 해결하는 것들 중 하나는 폰트의 간격을 100으로 고정하는것이다.
그 예는 아래에 있다.
<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
아래의것도 첨부.
<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>
Helvetica같은 폰트는 안티알리아싱을 할때 문제가 발생할 수 있다. 이런 문제는 폰트가 수직으로 반절이 잘려진것처럼 보인다는 것이다. 더욱 안좋은 것은 Mozilla와 같은 프로그램과 충돌이 발행하는 원인이 될 수 있다는 점이랍니다. 이현상을 피하기 위해, local.conf 파일에 아래의 사항을 추가하는것을 고려해봄직합니다.
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>
local.conf 파일의 수정을 마친후 파일의 끝에 </fontconfig> 태그를 추가해야만 합니다. 이것이 없다면 수정 사항이 무시되니까요....
X11에 설정되어 있는 기본폰트는 안티알리아싱 적용시 적절해 보이지 않는다.
x11-fonts/bitstream-vera 포트에 있는것이 기본 폰트보다 더 많이 찾을 수 있다.
이 포트는 만약 없다면 /usr/X11R6/etc/fonts/local.conf 파일을 설치할 것이다.
위 파일이 존재한다면, 포트는 /usr/X11R6/etc/fonts/local.conf-vera 파일을 생성한다.
/usr/X11R6/etc/fonts/local.conf 파일에 /usr/X11R6/etc/fonts/local.conf-vera 의 내용을 합하면, 비트스트림폰트는 X11의 Serif, Sans Serif, Monospaced 폰트를 자동으로 대체하게 될것이다.
마지막으로, 사용자들은 자신의 고유의 설정을 자신들의 .fonts.conf 파일을 통해 추가할 수 있다.
이때 할 일은 각 유저는 ~/.fonts.conf 파일을 생성하기만 하면 된다. 이 파일도 XML형식을 가진다.
마지막 사항: LCD인 경우 sub-pixel 샘플링을 요구할 지도 모른다.
이는 기본적으로 (수평으로분리된) Red, Green, Blue 색상요소들의 향상된 분리(?)로 , 수평주사율을 의미한다.
그 결과물은 드라마틱하다. 이를 가능하게 하려면, local.conf 파일에 다음의 문장을 넣어준다.
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
이렇게 하면 안티알이아싱을 X 서버가 시작되면서 사용할 수 있게 된다.