GRN(1)

명칭
grn - gremlin 파일용 groff 프리프로세서

서식
grn [ -Cv ] [ -Tdev ] [ -Mdir ] [ -Fdir ] [ file... ]

명령행 옵션과 파라미터의 사이에 공백을 포함하는 것이 가능합니다.

해설
grn (은)는, groff 의 입력중에 gremlin 그림을 넣기 위한 프리프로세서입니다. grn (은)는, .GS (와)과 .GE 의 사이 에 끼워진 입력행만을 처리해, 표준 출력에 써냅니다. 처리되는 행에는 grn 명령 (후술)가 포함되지 않으면 안됩니다. 이러한 명령은, gremlin 파일을 요구해, 그 파일중의 그림을 변환해 troff 의 입력 스트림에 둡니다. .GS 리퀘스트는, 계속해 C, L, R 를 취할 수가 있어 gremlin 그림 전체를 centering, 왼쪽 가지런히 해 혹은 오른쪽맞춤으로 할 수가 있습니다 (디폴트는 centering입니다). file 하지만 지정되어 있지 않은 경우는, 표준 입력이 읽힙니다. 그림의 최후에서는, 페이지내에서의 위치는 gremlin 그림아래가 됩니다. grn 엔트리가 .GE (은)는 아니고 .GF 그리고 끝나 있는 경우는, 페이지내에서의 위치는 그림의 좌상이 됩니다.

현재로서는, -me 매크로 패키지만이 .GS, .GE, .GF (을)를 서포트하고 있는 것에 주의해 주세요.

다음의 명령행 옵션을 이해합니다:

-Tdev
    프린터 dev 용무의 출력을 준비합니다. 디폴트의 디바이스는 ps 입니다. 받아들이고 가능한 디바이스에 대해서는 groff(1) (을)를 참조해 주세요.

-Mdir
    dir (을)를, gremlin 파일의 디폴트 검색 패스 전에 추가합니다. 디폴트 패스는 (차례로), 현재의 디렉토리, 홈 디렉토리, /usr/share/tmac, /usr/share/tmac, /usr/share/tmac (역주: 중복 하고 있습니다만 원문 대로입니다)입니다.

-Fdir
    dir 안으로부터 서브 디렉토리 devname (name (은)는 디바이스명입니다)를 찾아, 통상의 /usr/share/groff_font 의 전에 읽힌다 DESC 파일을 찾습니다.

-C  비록 공백이나 개행 이외의 캐릭터가 후에 잇고 있어도 .GS 및 .GE ( 및 이것에 상응한다 .GF) (을)를 인식합니다.

-v  버젼 번호를 표시합니다.

grn 명령
.GS (와)과 .GE 에 끼워진 입력행은 각각 1 개(살)씩 grn 명령을 가지고 있습니다. 명령은, 1 개의 캐릭터 라인인가, 공백에서 단락지어진 2 개의 캐릭터 라인으로 되어 있습니다. 최초의 캐릭터 라인은 명령이며, 2 번째의 캐릭터 라인은 오퍼랜드입니다. 명령은 대문자 소문자 어디라도 자주(잘), 1 캐릭터까지 줄일 수도 있습니다.

그림의 환경에 영향을 주는 명령 (이후에 두어 default 의 전에 리스트 되고 있는 것)는, 현재의 그림에 대해서 마셔 효과를 가집니다. 다음의 도화 시작되면(자), 환경은 디폴트로 재초기화됩니다. 명령은 다음과 같습니다:

1 N
2 N
3 N
4 N
    gremlin 의 텍스트 사이즈 번호 1 (2, 3 또는 4)을 N 포인트로 설정합니다. 디폴트는 12 (16, 24, 36)입니다.

roman f
italics f
bold f
special f
    낭만체 (이탤릭체, 볼드체, 혹은 특수 캐릭터)의 폰트를 troff 폰트 f (폰트명 혹은 번호)(으)로 설정합니다. 디폴트는 R (I, B, S)입니다.

l f
stipple f
    스티풀 (stipple) 폰트를 troff 의 스티프르폰트 f (폰트명 혹은 번호) (으)로 설정합니다. 명령 stipple (은)는, `st'까지라면 생략 할 수 있습니다 ( special (와)과의 혼란을 피하기 (위해)때문입니다). 스티프르폰트에는 디폴트는 없습니다 (default 명령로 설정되어 있지 않은 한은). 스티프르폰트를 지정하지 않는 채, 다각형을 포함했다 gremlin 그림을 수중에 넣는 것은 부정합니다.

x N
scale N
    (디폴트의 확대 처리에 가세해) gremlin 도를 N 배로 확대합니다. 여기서 N 는 0 보다 큰 부동 소수치입니다. 명령 scale (은)는, `sc'까지라면 생략 할 수 있습니다.

narrow N
medium N
thick N
    세선 (중간의 굵기의 선, 및 태선)의 굵기를 0.15 포인트 (이 값은, 컴파일시로 변경할 수 있습니다)의 N 배로 설정합니다. 디폴트는 1.0 (3.0, 5.0)입니다. 이것은, 0.15 포인트 (0.45 포인트 및 0.75 포인트)에 대응하고 있습니다. 굵기를 나타내는 값이 0 때는, 사용할 수 있는 가운데 가장 작은 값을 선택합니다. 부의 값은, 현재의 포인트 사이즈에 비례한, 선의 굵기의 지정이 됩니다.

pointscale <off/on>
    텍스트를 그림에 맞도록(듯이) 슬캘링 합니다. gremlin 텍스트는, 통상, 그림의 스케일 팩터에 의하지 않고, 명령 1, 2, 3, 혹은 4 그리고 지정되는 포인트 사이즈로 표시됩니다. pointscale (을)를 설정하면(자), 포인트 사이즈가 그림에 맞추어 변경됩니다 (물론, troff 의 제한내에). off 이외의 오퍼랜드는 무엇으로 있어도 텍스트의 슬캘링을 유효하게 합니다.

default
    디폴트의 그림의 환경을, 현재의 그림의 환경에서, 재설정합니다. 이 옵션은, troff 입력 파일의 선두에서 글로벌 파라미터를 설정하는 메카니즘으로서 사용되는 것을 의도하고 있습니다만, 디폴트 설정을 재설정하고 싶을 때는 언제라도 사용할 수가 있습니다.

width N
    그림을 강제적으로 폭 N 인치로 합니다. 이 옵션은, 같은 그림중에 존재하는 다른 스케일 팩터에 우선합니다. `width 0' (은)는, 무시됩니다.

height N
    다른 스케일 팩터에 우선해, 그림을 강제적으로 높이 N 인치로 합니다. `width'와 `height'양쪽 모두가 지정되어 있을 때는, 그림을 보다 작게 하는 제약이 그림의 스케일을 결정합니다. height 및 width 명령은, default 명령에서는 보존은 되지 않습니다. 그렇지만, 포인트 사이즈 슬캘링이 사용되고 있는 경우에는, 이것에 대한 영향은 있습니다.

file name
    커런트 디렉토리 (혹은 프로그램 라이브러리 디렉토리. 전술의 -M 옵션을 참조해 주세요)에 놓여졌다 gremlin 파일 name (으)로부터 그림을 취득합니다. file 명령이 2 개 주어졌을 경우, 2 개째의 커멘드가 최초의 커멘드에 우선합니다. name 하지만 존재하지 않는 경우는, 에러 메세지가 보고되어 .GE 행으로부터 처리가 재개됩니다.

groff 에 관한 주의
grn (은)는 프리프로세서이므로, 현재의 인덴트나 포인트 사이즈, margin나 번호 레지스터등에 대해서는 모릅니다. 그 때문에, .GS 리퀘스트와 .GE 리퀘스트의 사이에는 troff 에의 입력을 둘 수가 없습니다. 그렇지만, gremlin 텍스트는 현재 troff 그리고 처리됩니다. 그 때문에, gremlin 텍스트행에 있다 troff 에의 입력행은 모두 올바른 것이 됩니다 (다만, 줄머리에 `. '지시문을 두는 것은 금지되고 있습니다). 그 때문에, gremlin 파일중에 정의 끝난 딜리미터 (예를 들면 $$) 그리고 괄 eqn 표기를 묻는 것에 의해, gremlin 그림안에 등식을 쓸 수가 있습니다.

grn (을)를 다른 프리프로세서와 함께 사용하는 경우, tbl 하지만 일을 너무 하지 않게 하기 위해서, grn, pic, ideal 보다 전에 tbl (을)를 호출하는 것이 가장 좋은 방식입니다. eqn (은)는 반드시 마지막에 기동시켜야 합니다.

그림은 하나의 엔티티로 간주해집니다만, 페이지의 말미를 넘어 버렸을 경우, troff (은)는 그림을 분할하려고 해 버립니다. -me 매크로중에서 그림을 `keeps'안에 두는 것으로 적절한 위치 결정이 생기게 됩니다.

grn 하 troff 의 번호 레지스터 g1 (으)로부터 g9 까지를 사용해, 그리고 .GS 리퀘스트를 처리하기 전에 레지스터 g1 및 g2 에 gremlin 그림의 폭 및 높이 (디바이스 단위)를 설정합니다 (이러한 매크로를 고쳐 쓰고 싶다고 생각하고 있는 사람들을 위해서(때문에) 그렇게 해서 있습니다).

gremlin 파일 형식
gremlin 파일 형식에는 2 개가 다른 형식이 있습니다. AED 그래픽 단말용 버젼 유래의 오리지날의 형식과 SUN 및 X11 버젼의 형식입니다. 부의 좌표를 이용한 참조점을 용인한다 SUN/X11 버젼의 확장 기능은, AED 버젼과는 호환성이 없습니다 gremlin 파일에 부의 좌표가 포함되지 않은 한은, 어느 쪽의 형식의 파일도 gremlin 혹은 grn 그리고 읽어들일 수가 있습니다. 그 밖에 SUN/X11 의 형식이 다른 점은, 그림의 오브젝트에 대해서 번호를 사용하는 것이 아니라, 이름 (예를 들면, POLYGON, CURVE)을 사용하는 것입니다. 같은 그림을 나타내는 파일을, 각각의 형식에 대해 표 1 에 나타냅니다.

sungremlinfile |  | gremlinfile
0 240.00 128.00 |  | 0 240.00 128.00
CENTCENT |  | 2
240.00 128.00 |  | 240. 00 128.00
185.00 120.00 |  | 185. 00 120.00
240.00 120.00 |  | 240. 00 120.00
296.00 120.00 |  | 296. 00 120.00
* |  | -1. 00 -1. 00
2 3 |  | 2 3
10 A Triangle |  | 10 A Triangle
POLYGON |  | 6
224.00 416.00 |  | 224. 00 416.00
96.00 160.00 |  | 96. 00 160.00
384.00 160.00 |  | 384. 00 160.00
* |  | -1. 00 -1. 00
5 1 |  | 5 1
0 |  | 0
-1 |  | -1
표 1. 파일예

•   각각의 gremlin 파일의 1 행 째는, 캐릭터 라인 gremlinfile (AED 버젼) 혹은 sungremlinfile (SUN/X11버젼) 의 어느 쪽인지입니다.

•   파일의 2 행 째에는 점의 위치를 결정하기 위한, 방향, x 및 y 의 값이 포함되어 있어 각 치는 공백에서 단락지어지고 있습니다. 방향은, 0 혹은 1 (을)를 취해, SUN/X11 버젼에서는 무시됩니다. 0 (은)는, gremlin 도화 수평 방향의 형식에서 표시되는 것을 의미하고 있습니다 (묘화 area의 폭이 실제의 그림의 높이보다 넓게 빼앗겨 상부에 메뉴가 다합니다). 1 (은)는, gremlin 도화 수직 방향의 형식에서 표시되는 것을 의미하고 있습니다 (묘화 area의 높이가 실제의 그림의 폭보다 높게 빼앗겨 좌측으로 메뉴가 다합니다). x 및 y (은)는 부동 소수치이며, 이 파일이 다른 파일에 읽힌다 때에, 위치 결정점을 주기 위해서(때문에) 사용됩니다. 이 행의 요소는, 그만큼 중요한 것이 아닙니다. ``1 0.00 0.00''라고 하는 값을 추천 합니다.

•   이 파일의 나머지의 부분은 0 개 이상의 요소를 기술한 것이 되어 있습니다. 마지막 요소를 기술한 후에는, 캐릭터 라인 ``-1''를 가진 행이 옵니다.

요소의 기술

•   각 요소의 최초의 행에는, 요소 타입을 주는 10 진수 (AED 버젼의 경우) 혹은 요소의 ASCII 캐릭터에서의 명칭 (SUN/X11 버젼의 경우) 하지만 1 개(살) 포함되어 있습니다. 표 2 를 참조해 주세요.

    gremlin 파일 포맷 - 오브젝트 타입의 사양
    AED 번호 | SUN/X11 명칭 | 해설
    0 | BOTLEFT | 좌하 가지런히 하고의 텍스트
    1 | BOTRIGHT | 우하 가지런히 하고의 텍스트
    2 | CENTCENT | centering의 텍스트
    3 | VECTOR | 벡터
    4 | ARC | 원호
    5 | CURVE | 곡선
    6 | POLYGON | 다각형
    10 | TOPLEFT | 좌상 가지런히 하고의 텍스트
    11 | TOPCENT | 중앙상 가지런히 하고의 텍스트
    12 | TOPRIGHT | 우상 가지런히 하고의 텍스트
    13 | CENTLEFT | 왼쪽 centering의 텍스트
    14 | CENTRIGHT | 오른쪽 centering의 텍스트
    15 | BOTCENT | 중앙하 가지런히 하고의 텍스트
    표 2.
    gremlin 파일에 있어서의 요소 타입의 사양

•   오브젝트 타입의 뒤에는, 가변수의 행이 옵니다. 각 행은, 오브젝트의 요소를 표시하는데 사용되는 점을 지정합니다. 각 행에는, x 좌표 및 y 좌표가 부동 소수값으로 들어오고 있어 각각은 공백 캐릭터로 단락지어지고 있습니다. 점의 리스트는, 캐릭터 라인 ``-1. 0 -1. 0''를 포함한 행 (AED 버젼의 경우) 혹은 asterisk ``*'' 1 개 (SUN/X11 버젼의 경우)로 끝납니다.

•   점의 뒤에는, 10 진수 2 개를 포함한 행이 옵니다. 이것은, 요소에 대한 브러쉬와 사이즈를 줍니다. 브러쉬는, 오브젝트가 그려질 때의 스타일을 결정합니다. 벡터, 원호, 및 곡선에 대해서는, 브러쉬의 값으로 해서 6 개의 정당한 값이 있습니다:

    1 - |  | 가는 점선
    2 - |  | 가는 일점 긴 점선
    3 - |  | 굵은 직선
    4 - |  | 가는 파선
    5 - |  | 가는 직선
    6 - |  | 통상의 직선

    다각형에 대해서는, 게다가 0 도 정당한 값이 됩니다. 이 값은, 경계선의 안보이는 다각형을 지정하는 것입니다. 텍스트에 대해서는, 브러쉬는 다음과 같이 폰트를 선택합니다:

    1 - |  | 낭만체 (groff 에서의 R 폰트)
    2 - |  | 이탤릭체 (groff 에서의 I 폰트)
    3 - |  | 볼드체 (groff 에서의 B 폰트)
    4 - |  | 특수 캐릭터 (groff 에서의 S 폰트)

    그림을 groff 에 통하기 위해서(때문에) grn (을)를 사용하고 있는 경우는, 여기서의 폰트는 다만 개시시의 폰트가 될 뿐입니다: 텍스트 캐릭터 라인에는, ``\fI'' (이)나 ``\d'' (와)과 같은, 폰트를 변경 할 수 있다 (다른 일도 한다) 포맷용 순차 순서를 포함해도 상관하지 않습니다. 텍스트에서는, 사이즈 필드는 1 에서 4 까지의 10 진수입니다. 이것은, 텍스트가 묘화 되는 font size를 선택합니다. 다각형에 대해서는, 이 사이즈 필드는 다각형 내부를 묻기 위해서(때문에) 사용되는 스티풀 번호라고 해석됩니다. 이 번호는, 표시할 때에 스티프르폰트에 옮겨놓는다 인덱스로서 사용됩니다.

•   각 요소의 맨 마지막 줄에는, 10 진수와 캐릭터 라인이 공백 캐릭터 1 개(살)로 단락지어져 들어가 있습니다. 10 진수는, 캐릭터 라인중의 캐릭터수를 카운트 한 것입니다. 이 정보는 텍스트 요소 에 대해서만 사용되어 텍스트 캐릭터 라인이 정보안에 포함되어 있습니다. 텍스트 내부에는 공백 캐릭터가 들어가 있어도 좋습니다. 원호, 곡선, 및 벡터에 대해서는, 각각의 요소가 대응하는 행에는 캐릭터 라인 ``0''가 들어가 있습니다.

좌표에 대한 주의
gremlin 하 AED 용으로 설계되어 그 좌표계는 AED 의 좌표 공간을 반영한 것이 되어 있습니다. 수직 방향의 그림에 대해서는, x 치는 116 에서 511 까지를 취해, y 치는 0 에서 483 까지를 취합니다. 수평 방향의 그림에 대해서는, x 치는 0 에서 511 까지를 취해, y 치는 0 에서 367 까지를 취합니다. 이 범위에 반드시 구애될 것은 없습니다만, 적어도 이 근방에 그쳐 두면 최선의 결과가 얻을 수 있겠지요. 게다가 점의 리스트는 (-1, -1)으로 끝나기 때문에, 부의 좌표를 사용할 수 없습니다. gremlin 그림은, ``%f1. 2''라고 하는 형식을 사용해 좌표를 출력합니다. 그러므로, grn 코드를 변경하고 싶은 경우에는 같은 형식을 이용하는 것이 어쩌면 좋은 생각이지요.

SUN/X11 버젼의 좌표에 대한 주의
SUN/X11 버젼의 gremlin 그림에서는, 오브젝트 생성에 이용되는 좌표의 범위에 제한은 이제 없습니다. 그러나, 부의 좌표를 가진 파일에서는, AED 위에서 표시 시키려고 하면(자) 문제가 발생하겠지요

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

관련 항목
gremlin(1), groff(1), pic(1), ideal(1)

역사

David Slattengren 와 Barry Roitblat 가 오리지날의 Berkeley 판 grn (을)를 썼습니다.

Daniel Senderowicz 와 Werner Lemberg 가 groff 용으로 고쳐 썼습니다.