국제 언어 환경 설명서

구성 파일의 지역화

구성 파일은 글꼴 항목 또는 글꼴 그룹 항목을 추가 또는 변경하는 유연성을 제공합니다.

시스템 기본 구성 파일 /usr/lib/lp/locale/$LANG/mp/mp.conf , 여기서 $LANG은 인쇄가 이루어지는 로켈의 로켈 환경 변수입니다. 사용자는 -u config.file path 옵션으로 개인 구성 파일을 지정하여 사용할 수 있습니다.

호환용 문자로 인코딩된 슬러 또는 변수 그림 문자를 표현 형식이라고 합니다. mp.conf 파일은 로켈의 코드 포인트를 그 코드 포인트를 인쇄하는데 사용되는 글꼴의 인코딩된 표현 형식으로 매핑하는데 주로 사용됩니다.

중간 코드 포인트는 넓은 문자이거나 이식 가능 레이아웃 서비스(PLS) 레이어의 출력일 수 있습니다. 복잡한 텍스트 레이아웃 인쇄를 위해서는 중간 코드 포인트가 PLS 출력이어야 합니다. mp(1)이 생성한 기본 중간 코드는 PLS 출력입니다.

현재 지원되는 글꼴 형식은 PCF(Portable Compiled Format), TrueType 및 Type1 형식입니다. 시스템 상주 및 프린터 상주 Type1 글꼴이 모두 지원됩니다. mp.conf 구성 파일의 형식과 내용에 대하여 다음을 기억하십시오.

mp.conf 파일의 다른 부분은 다음을 포함합니다.

글꼴 별명 짓기

mp.conf 파일의 글꼴 별명 짓기 부분은 인쇄에 사용되는 각 글꼴의 별명을 정의하는데 사용됩니다. 이 절의 각 행은 다음과 같은 형식입니다.

FontNameAlias 글꼴-별명-이름 글꼴-유형 글꼴-경로 			
글꼴-별명-이름

글꼴 이름 별명 짓기의 일반적인 규약은 글꼴의 인코딩/스크립트 Roman, Bold, Italic 또는 BoldItalic (R, B, I 또는 BI)인지를 나타내는 문자가 뒤에 오도록 지정하는 것입니다.

예를 들어, /usr/openwin/lib/X11/fonts/75dpi/courR18.pcf.Z, 이것은 iso88591 로마 글꼴이기 때문에 별명 iso88591R이 주어질 수 있습니다.

글꼴-유형

.pcf 글꼴에 대하여 PCF, Adobe Type1 글꼴에 대하여 Type1, TrueType 글꼴에 대하여 TrueType을 지정합니다. 이러한 세 가지 글꼴 종류만 이 mp.config 파일에서 구성될 수 있습니다.

글꼴-경로

글꼴 파일에 절대 경로 이름을 부여합니다. Type1 프린터 상주 글꼴에 대해서는 Helvetica와 같은 글꼴 이름을 지정합니다.

예를 들어,

FontNameAlias   prnHelveticaR   Type1   Helvetica

글꼴 그룹 정의

동일한 유형의 글꼴을 조합하여 글꼴 그룹을 형성할 수 있습니다. 글꼴 그룹의 형식은 다음과 같습니다.

키워드

FontGroup

fontgroupname

글꼴의 그룹 이름

GroupType

글꼴 유형동일한 유형의 글꼴(PCF, Type1, TrueType)에 대해서만 글꼴 그룹을 만드십시오.

Roman

글꼴 그룹의 로마 글꼴 이름

Bold

글꼴 그룹의 굵은체 글꼴 이름

Italic

글꼴 그룹의 기울임꼴 글꼴 이름

BoldItalic

글꼴 그룹의 굵은 기울임 글꼴 이름.

그룹을 만들려면 로마 글꼴 항목만 필요합니다. Bold, Italic 및 BoldItalic 글꼴은 선택적입니다. 다른 유형의 글꼴은 예를 들어, 우편/뉴스 기사의 헤더 행을 표시하는데 사용됩니다. 로마 글꼴만 정의되면 다른 글꼴 대신 사용됩니다.

매핑 부분

mp.conf 파일의 매핑 부분은 로켈에서 중간 코드 범위를 글꼴 그룹에 매핑합니다. 이 부분의 각 행은 다음과 같은 형식입니다.

키워드

MapCode2글꼴.

range_start

0x로 시작되는 4바이트 16진수 값. 하나 이상의 글꼴 그룹에 매핑되는 코드 범위의 시작을 나타냅니다.

range_end

매핑될 코드 범위의 끝을 나타냅니다. 단일 중간 코드 포인트가 대상 글꼴에 매핑될 때는 '-' 값만 가능합니다.

그룹

표현 형식이 인쇄될 Type1, PCF 또는 TrueType 글꼴 그룹.

연관 부분

mp.conf 파일의 연관 부분은 각 글꼴을 글꼴 인코딩의 표현 형식에 중간 코드 포인트를 매핑하는 공유 객체와 연관시킵니다. 이 부분의 각 행은 다음과 같은 형식입니다.

키워드

CnvCode2Font.

글꼴 별명

글꼴에 정의된 별명

매핑 함수

중간 코드를 받아들이고 글꼴 인코딩의 표현 형식을 반환하면 이것은 그림 문자 색인을 얻고 그림 문자를 그리는 데 사용됩니다.

파일 경로 매핑 함수

매핑 기능을 포함하는 .so 파일 이름 dumpcs를 사용하여 EUC 로켈의 중간 코드 세트를 찾을 수 있습니다.


주 –

mp(1)이 사용하는 현재 트루타입 엔진은 형식 4와 PlatformID 3 cmap만 다룰 수 있습니다. 즉, Microsoft .ttf 파일만 구성할 수 있습니다. 추가로, 문자 맵 인코딩인 트루타입 글꼴 엔진이 제대로 작동하기 위해 유니코드 또는 기호여야 합니다. Solaris 환경의 .ttf 글꼴 대부분은 이러한 제약을 준수하기 때문에 mp.conf 파일 내에서 Solaris 소프트웨어의 모든 트루타입 글꼴을 매핑할 수 있습니다.


PCF type1 X 논리적 글꼴 설명(XLFD)에 해당하는 글꼴 매핑을 위해 공유 객체를 만들면 중간 코드 범위를 XLFD가 지정하는 인코딩으로 매핑하는 공유 객체를 만드십시오. 예를 들어, 다음과 같습니다.

-monotype-arial-bold-r-normal-bitmap-10-100-75-75-p-54-iso8859-8

해당 PCF 글꼴은 다음과 같습니다.

/usr/openwin/lib/locale/iso_8859_8/X11/fonts/75dpi/ariabd10.pcf.Z

이 글꼴은 isoISO 8859-8로 인코딩되므로 공유 객체는 중간 코드와 해당 ISO 8859-8 코드 포인트 사이를 매핑해야 합니다.

XLFD가 있는 트루타입 글꼴의 경우

-monotype-arial-medium-r-normal--0-0-0-0-p-0-iso8859-8

해당 글꼴은 다음과 같습니다.

/usr/openwin/lib/locale/iso_8859_8/X11/fonts/TrueType/arial__h.ttf

이전 트루타입 글꼴의 cmap 인코딩이 유니코드로 되어 있기 때문에 중간 코드와 유니코드 사이를 매핑해야 합니다. 트루타입 글꼴의 예제에서 헤브루 문자(PLS 레이어가 만듬)에 해당하는 en_US.UTF-8 로켈 예제 중간 코드가 0xe50000e9라고 가정합니다. 글꼴이 유니코드로 인코딩되기 때문에 0xe50000e9를 전달할 때 출력이 유니코드의 표현 형식에 해당하는 방식으로 해당 .so 모듈 내에서 함수를 설계하십시오. 현재 예제는 0x000005d9입니다.

매핑 함수에 대한 함수 프로토타입은 다음과 같아야 합니다.

unsigned int function(unsigned int inter_code_pt)

다음은 mp.conf에서 사용할 수 있는 선택적 키워드/값 쌍입니다.

PresentationForm        WC/PLSOutput

기본값은 PLSOutput입니다. 사용자가 WC를 지정하면 생성되는 중간 코드는 넓은 문자입니다. CTL 인쇄의 경우 이 기본값이 사용되어야 합니다.

로켈이 비CTL 로켈이고 키보드 값 PLSOutput을 가지면 해당 값은 무시되고 대신 mp(1)이 넓은 문자 코드를 생성합니다.

로켈이 CTL을 지원하는 경우 다음 표에 나열된 선택적 키워드/값 쌍을 사용할 수 있습니다. 이러한 변수는 테이블의 중간 열에 주어진 모든 가능한 값을 가정할 수 있습니다.

표 7–1 선택적 키워드/값 쌍

선택적 키워드 

선택적 값 

기본값 

방향

ORIENTATION_LTR/

ORIENTATION_RTL/

ORIENTATION_CONTEXTUAL

ORIENTATION_LTR

숫자

NUMERALS_NOMINAL/

NUMERALS_NATIONAL/

NUMERALS_CONTEXTUAL

NUMERALS_NOMINAL

TextShaping

TEXT_SHAPED/

TEXT_NOMINAL/

TEXT_SHFORM1/

TEXT_SHFORM2/

TEXT_SHFORM3/

TEXT_SHFORM4

TEXT_SHAPED

프린터 상주 글꼴 추가하기

다음 예제는 구성 파일에 새 PCF, TrueType 또는 Type1 프린터 상주 글꼴을 추가할 때 따라야 하는 단계를 보여줍니다.

범위 0x00000021 - 0x0000007f에서 문자를 표시하기 위한 글꼴을 현재 구성된 PCF 글꼴 대신 트루타입 글꼴로 바꿉니다.

새 글꼴을 추가하기 전에 다음과 같이 현재 구성된 글꼴에 해당하는 구성 파일에서 다양한 구성 요소를 찾으십시오.

FontNameAlias iso88591R  PCF  /usr/openwin/lib/X11/fonts/75dpi/courR18PCF.Z
FontNameAlias iso88591B  PCF  /usr/openwin/lib/X11/fonts/75dpi/courB18PCF.Z
.
.
.
FontGroup       iso88591         PCF       iso88591R iso88591B
.
.
.
MapCode2Font    0x00000020      0x0000007f      iso88591
.
.
.
CnvCode2Font iso88591R _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so
CnvCode2Font iso88591B _xuiso88591 /usr/lib/lp/locale/$LANG/mp/xuiso88591.so

en_US.UTF-8 로켈에서 매핑을 수행하기 위한 후보로 /usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf를 선택했다고 가정합니다. 이것은 .so 모듈 내의 매핑 함수에서 유니코드 문자 매핑된 트루타입 글꼴 파일이기 때문에 받는 ucs-2 코드 포인트를 직접 반환하는 함수만 가지면 됩니다.

unsigned short _ttfjis0201(unsigned short ucs2) {
                 return(ucs2);
         }

이것을 ttfjis0201.c 파일에 저장하십시오. 다음과 같이 공유 객체를 만드십시오.

cc -G -Kpic -o ttfjis0201.so ttfjis0201.c

/usr/openwin/lib/locale/ja/X11/fonts/75dpi/gotmrk20.pcf.Z 와 같은 PCF 파일을 매핑하고 있다면 /usr/openwin/lib/locale/ja/X11/fonts/75dpi/ 디렉토리에서 fonts.dir 파일을 찾으십시오. 다음와 같은 XLFD에 해당하는 인코딩에 익숙해 지십시오.

-sun-gothic-medium-r-normal--22-200-75-75-c-100-jisx0201.1976-0

jisx0201은 인코딩이기 문에 ucs-2에서 jisx0201로 매핑되는 공유 객체를 준비하십시오. .so 모듈을 만드는 매핑 테이블을 얻어야 합니다(이미 준비되지 않은 경우). 유니코드 로켈의 경우 ftp.unicode.org/pub/MAPPINGS/ 하에서 많은 문자 세트와 유니코드의 매핑을 찾으십시오. xu2jis0201.c 파일을 작성하기 위해 다음 매핑(1)(1)을 따르십시오.

 unsigned short _xu2jis0201(unsigned short ucs2) {
                         if(ucs2>= 0x20 && ucs2 <= 0x7d )
                                 return (ucs2);
                         if(ucs2==0x203e)
                                 return (0x7e);
                         if(ucs2>= 0xff61 && ucs2 <= 0xff9f)
                                 return (ucs2 - 0xff60 + 0xa0);
                        return(0);
                 }

매핑 파일을 작성할 때 모든 UCS-2를 jisx0201 케이스에 포함시키십시오.

cc  -G -o xu2jis0201.so xu2jis0201.c

공유 객체 파일 작성

이 예제에서 공유 객체 파일을 작성합니다.

다음 행을 mp.conf의 해당 부분에 추가하여 이 글꼴을 추가합니다. 다음 예제는 트루타입 글꼴을 추가하는 방법을 보여줍니다. PCF 글꼴은 트루타입 대신 PCF에 대한 키워드를 변경하는 것을 제외하고 동일한 패턴을 따릅니다.

FontNameAlias   jis0201R TrueType /home/fn/HG-Minchol.ttf
FontGroup     jis0201 TrueType jis0201R
MapCode2Font  0x0020 	0x007f  jis0201
CnvCode2Font   jis0201R 	 _ttfjis0201 <.so path>

여기서 .so 경로는 xu2jis0201.so 파일을 가리킵니다.

변경된 mp.conf 파일로 mp(1)을 호출하면 범위 0x0020-0x007f가 새 글꼴로 인쇄됩니다. 다른 일본어 문자 범위도 동일하게 매핑합니다.so 파일, 예를 들어, 범위 0x0000FF61 0x0000FF9F입니다.

역방향 호환성을 유지하려면 /usr/openwin/lib/locale/$LANG/print/prolog.ps 파일이 현재 로켈에서 출력을 만드는 데 사용됩니다. 현재 로켈에서 $LANG은 로켈 구성 요소 중 하나입니다. 그러한 상황에서 구성 파일 체계는 사용되지 않습니다

예제 mp.conf 파일인 /usr/lib/lp/locale/en_US.UTF-8/mp/mp.conf를 참조하십시오.