GROFF_FONT(5)

명칭
groff_font - groff 의 디바이스와 폰트를 기술하는 파일의 서식

해설
groff 의 폰트의 서식은 ditroff 의 폰트의 서식에 대해, 거의 슈퍼 세트가 되어 있습니다. ditroff 의 폰트의 서식과는 달라, 관련한 바이너리 서식은 없습니다. name 그렇다고 하는 디바이스용의 폰트 파일은 devname 그렇다고 하는 디렉토리에 납입할 수 있습니다. 파일에는 2 개의 종류가 있습니다: 그것은 DESC (으)로 불리는 디바이스 기술 파일과 각 폰트 F 마다 존재한다 F (으)로 불리는 폰트 파일입니다. 이것들은 텍스트 파일이며, 관련한 바이너리 서식의 파일은 없습니다.

  DESC 파일의 서식
DESC 파일은 이하의 형식의 행을 포함할 수가 있습니다:

res n
    1 인치 근처의 머신 단위는 n 입니다.

hor n
    수평 해상도는 n 머신 단위입니다.

vert n
    수직 해상도는 n 머신 단위입니다.

sizescale n
    포인트수에의 배율을 지정합니다. 디폴트의 값은 1 입니다. 1 스케이르드포인트 (은)는, 1 포인트/n (와)과 동일해집니다. unitwidth 명령와 sizes 명령에의 인수는 스케이르드포인트로 지정됩니다.

unitwidth n
    포인트 사이즈가 n 스케이르드포인트의 폰트에 대해서, 폰트 파일 마다의 수량을 머신 단위로 줍니다.

prepro program
    program (을)를 프리프로세서로서 호출합니다.

postpro program
    program (을)를 포스트프로세서로서 사용합니다.

tcommand
    포스트프로세서가 t (와)과 u 의 출력 명령을 취급할 수 있는 것을 나타냅니다.

sizes s1 s2...sn 0
    디바이스가 s1, s2,...sn 스케이르드포인트의 폰트를 가지는 것을 나타냅니다. 크기의 리스트는 0 그리고 끝나지 않으면 안됩니다. 각 si (은)는 크기의 범위 m-n 그렇지만 지정할 수 있습니다. 리스트는 복수행에 걸치는 일도 가능합니다.

styles S1 S2...Sm
    선두 m 개의 폰트 위치가, 스타일 S1...Sm 에 관련 지을 수 있습니다.

fonts n F1 F2 F3...Fn
    폰트 F1. . . Fn 하지만 폰트 위치 m+1,...,m+n 에 mount 됩니다( m (은)는 스타일수). 이 명령은 복수행에 걸칠 수가 있습니다. 0 그렇다고 하는 폰트명을 지정하면(자), 대응하는 폰트 위치에는 폰트는 mount 되지 않습니다.

family fam
    디폴트의 폰트 패밀리는 fam 입니다.

use_charnames_in_special
    이 명령은, 스페셜 커멘드에 대해서는, 지정한 캐릭터를 troff 가 encode 해야 하는 것을 지정합니다.

pass_filenames
    troff 가 드라이버에 대해서, 처리해야 할 원시 파일명을 전하는 리퀘스트입니다. 이것은, 다음에 나타내는 다른 tcommand 에서 실현됩니다: F filename

charset
    이 행과 파일내의 이하에 계속되는 행은 모두 무시됩니다. 이것은 하위 호환성을 위해서(때문에) 용서되고 있습니다.

print program
    program (을)를, 인쇄용의 스풀러 프로그램으로서 사용합니다. 이것이 존재하지 않는 경우, -l (와)과 -L 의 groff 옵션이 무시됩니다.

res, unitwidth, fonts, sizes 의 행은 필수입니다. 다른 명령은 troff 에는 무시됩니다만, 디바이스에 관한 임의의 정보를 DESC 파일에 넣어 두기 위해서(때문에) 포스트프로세서에 의해 사용될지도 모릅니다.

다음에 나타내는 것은 쓸모없게 된 키워드이며, groff 하지만 인식하지만 완전하게 무시하는 것의 리스트입니다: spare1, spare2, biggestfont

  폰트 파일의 서식
폰트 파일에는 2 개의 섹션이 있습니다. 최초의 섹션은 공백에서 단락지어진 단어가 줄선 일련의 행으로부터 됩니다. 행의 최초의 단어는 키로, 이후의 단어는 그 키에 대한 값이 됩니다.

name F
    폰트의 이름은 F 입니다.

spacewidth n
    공백의 통상의 폭은 n 입니다.

slant n
    폰트의 캐릭터가 n 번경사하고 있는 것을 나타냅니다 (정의 값은 진행 방향을 의미합니다).

ligatures lig1 lig2...lign [0]
    캐릭터 lig1, lig2,...,lign (은)는 합자 (리가체; ligature)입니다. 합자에는 ff, fi, fl, ffi, ffl 하지만 사용 가능합니다. 하위 호환성을 위해서(때문에), 합자의 리스트는 0 그리고 끝나도 괜찮습니다. 합자의 리스트는 복수행에 걸쳐서는 안됩니다.

special
    폰트는 스페셜 입니다. 이것은 현재의 폰트에 존재하지 않는 캐릭터가 요구되었을 경우, mount 된 모든 스페셜 폰트가 검색되는 것을 나타내고 있습니다.

다른 명령은 troff 에는 무시됩니다만, 폰트에 관한 임의의 정보를 폰트 파일에 넣어 두기 위해서(때문에) 포스트프로세서에 의해 사용될지도 모릅니다.

최초의 섹션에는 # 캐릭터에서는 글자 만코멘트를, 줄 끝까지 넣을 수가 있습니다.

다음의 섹션에는 1 개나 2 개의 서브 섹션이 포함됩니다. 서브 섹션 charset (은)는 필수로, 서브 섹션 kernpairs (은)는 옵션입니다. 이러한 서브 섹션은 임의의 차례로 쓸 수가 있습니다. 각 서브 섹션은, 서브 섹션명만으로부터 되는 행으로부터 시작됩니다.

단어 charset 그리고 charset 서브 섹션을 개시합니다. charset 행에는 일련의 행이 계속됩니다. 각 행은 1 캐릭터의 정보를 줍니다. 행은 공백이나 탭에 의해 단락지어지고 따분한가의 필드로부터 완성됩니다. 서식은

    name metrics type code [entity_name] [-- comment]

그리고, name (은)는 캐릭터를 식별합니다: name 하지만 단일의 캐릭터 c (이)라면, 그것은 groff 의 입력 캐릭터 c (을)를 나타냅니다. \c 그렇다고 하는 형식에서 c 가 단일의 캐릭터라면, groff 의 입력 캐릭터 \c (을)를 나타냅니다. 그 이외는 groff 의 입력 캐릭터 \[name] (을)를 나타냅니다 (2 캐릭터의 xx (이)라고 하면(자), \(xx (으)로서 입력됩니다). groff 는 8 비트 캐릭터에 대응하고 있습니다만, 몇개의 유틸리티에서는 8 비트 캐릭터를 취급하는 것이 곤란합니다. 이러한 이유로부터, 문자 코드가 n 인 단일의 캐릭터와 등가인 charn 그렇다고 하는 표기법이 존재합니다. 예를 들면, char163 (은)는 ISO Latin-1 로 영국 파운드 기호를 나타내는 문자 코드 163 의 캐릭터와 등가입니다. --- 그렇다고 하는 name 는 특별해, 그 캐릭터에 이름이 없는 일을 나타냅니다. 그러한 캐릭터는 troff 안으로 escape sequence \N 에 의해서만 사용됩니다.

type 필드는 캐릭터의 종류를 나타냅니다:

1   (은)는 descender (baseline보다 아래에는 보고 낸 부분)를 가진다 캐릭터인 것을 나타냅니다. 예를 들면 p 가 들어맞읍니다.

2   (은)는 ascender (x 의 높이부터 위에 나오는 부분)를 가지는 캐릭터인 것을 나타냅니다. 예를 들면 b 가 들어맞읍니다.

3   (은)는 ascender 와 descender 의 양쪽 모두를 가지는 캐릭터인 것을 나타냅니다. 예를 들면 (가 들어맞읍니다.

code 필드는 포스트프로세서가 캐릭터를 인자하기 위해서 사용하는 코드를 나타냅니다. \N 그렇다고 하는 escape sequence를 이용한 이 코드를 사용해, groff 에 캐릭터를 입력할 수도 있습니다. code 는 어떤 정수라도 괜찮습니다. 0 (으)로부터 시작되면(자), 8 진수로서 다루어져 0x (이)나 0X 그리고 시작되면(자) 16 진수로서 다루어집니다.

entity_name 필드는, 그리후를 식별하는 ASCII 캐릭터 라인을 줍니다. 이 그리후는, 후 처리를 실시하는 프로그램이 캐릭터의 인쇄에 사용합니다. 이 필드는 생략 가능하고, html 드라이버가 캐릭터 집합을 encode 가능과 하기 위해서 도입되었습니다. 예를 들면, 캐릭터 `\[Po]'는, html 4.0 에서는 `&pound;'라고 표현됩니다.

행의 code 필드 이후와`--'의 뒤는, 모두 무시됩니다.

metrics 필드의 형식은 이와 같이 됩니다:

    width[,height[,depth[,italic_correction[,left_italic_correction[,subscript_correction]]]]]

subfield간에는 공백을 들어갈 수 있어서는 안됩니다. subfield가 존재하지 않는 경우는 0 으로서 다루어집니다. subfield는 모두 10 진수의 정수로 지정됩니다. 대응하는 바이너리 포맷이 존재하지 않기 때문에, ditroff 와 같이 이러한 값을 char 형태 변수의 범위에 맞춘다고 할 필요는 없습니다. subfield width 그럼 캐릭터의 폭을 지정합니다. subfield height 그럼 캐릭터의 높이를 지정합니다 (위가 정). 캐릭터가 baseline보다 위에 가지 않은 경우, 부의 높이를 가진다고 하는 것이 아니라 높이가 0 이다고 합니다. subfield depth 그럼 캐릭터의 깊이를 지정합니다. 이것은 baseline로부터 캐릭터의 맨 밑까지의 길이입니다 (아래가 정). 캐릭터가 baseline보다 아래에 나와 있지 않은 경우, 부의 깊이를 가진다고 하는 것이 아니라 깊이가 0 이다고 합니다. subfield italic_correction 그럼 직후에 낭만 폰트의 캐릭터가 계속될 때에, 캐릭터의 뒤에 더해지는 공백의 양을 지정합니다. subfield left_italic_correction 그럼 직전에 낭만 폰트의 캐릭터가 있을 때에, 캐릭터의 전에 더해지는 공백의 양을 지정합니다. subfield subscript_correction 그럼 첨자 (subscript)를 더할 때에 캐릭터의 뒤에 더해지는 공백의 양을 지정합니다. 이것은 이탤릭 보정 (상기의 italic_correction)보다는 적지 않으면 되지 않습니다.

charset 섹션내에서는, 이하와 같은 서식의 행도 가능합니다

    name "

이것은 name 하지만 전의 행으로 언급한 캐릭터의 별명인 것을 나타냅니다.

kernpairs 섹션은 kernpairs 그렇다고 하는 단어로부터 시작됩니다. 이 섹션은 이하와 같은 서식의 행으로부터 됩니다:

    c1 c2 n

캐릭터 c1 하지만 캐릭터 c2 의 다음에 나타날 때에는, 그러한 사이의 공백에 n (을)를 더하는 것을 의미합니다. kernpairs 섹션의 대부분의 엔트리는 n 에 부의 값을 가지게 됩니다.

관련 파일
/usr/share/groff_font/devname/DESC 디바이스 name 용무의 디바이스 기술 파일

/usr/share/groff_font/devname/F
    디바이스 name 의 폰트 F 용무의 폰트 파일

관련 항목
groff_out(5), troff(1).