ROFF(7)

명칭
roff - roff 정서 시스템의 조사

해설
roff (와)과는 정서 프로그램군의 일반 명칭입니다. troff, nroff, groff 등의 이름으로 알려져 있습니다.

roff 정서 시스템은, 정형 용언어, 매크로 패키지, 프리프로세서, 출력 디바이스용 포스트프로세서, 유저용 프론트엔드 프로그램, 그리고 변환 툴로부터 구성되어 있습니다.

오늘, 가장 일반적인 roff 시스템은 프리 소프트웨어에서의 실장이다 groff (`GNU roff') 입니다. groff 보다 전의 실장은 「고전」 (1973 년까지 거슬러 올라갑니다) (이)라고 부르기로 하겠습니다.

groff (은)는, 고전인 조상의 시스템과 하위 호환성이 있습니다만, 수많은 확장이 되고 있어 지금도 계속 아직 진화하고 있습니다. 거의 모든 계산기 시스템으로 이용할 수 있기 (위해)때문에, 오늘로는 사실상의 roff 표준이 되고 있습니다.

그 낡음에도 불구하고, roff 는 오늘로도 넓게 사용되고 있습니다. 예를 들면, UNIX 시스템의 메뉴얼 페이지 (man페이지) (은)는 roff 로 쓰여져 있습니다. 텍스트 디바이스에 대한 roff 출력은, 아직껏 줄서지만 않을 정도(수록) 뛰어나 있습니다. 그래피컬한 출력도 다른 프리의 정서 프로그램과 동등의 품질을 가지고 있고, 것에 따라서는 상용 시스템의 것보다 우수할 때도 있습니다.

이 문서에서는 개요만을 나타내, 상세한 문서에 대해서는 포인터를 나타냅니다. 이 문서는 유지되지 않고, 시대에 뒤떨어지고 있을 가능성이 있습니다. 정확한 문서가 필요하면 groff info 파일을 참조해 주세요. 이것에는 상세해 현실에 맞은 정확한 레퍼런스 정보가 포함되어 있습니다.

정형 용언어
roff 시스템용의 언어를 가리키는 3 개의 용어가 있습니다. troff 언어 (은)는, roff 의 고전적인 부분에 중점을 둘 때 사용됩니다. groff 언어 (은)는 GNU 확장을 포함하고 있어 그에 대해 roff 언어 (은)는 일반적인 용어입니다.

groff 언어 의 모든 부분에 도착해 기술된 문서의 일차 정보원은 groff info 파일입니다. groff(7) 메뉴얼 페이지에서는, 정의 끝난 언어 요소 모두에 임해서 간결한 설명을 하고 있습니다.

roff 를 사용한 문서는, 보통 텍스트 파일을 정형용 요소로 수식한 것입니다. 매크로 패키지의 1 개를 사용해 고품질의 문서를 쓰는 것은 매우 간단한 일입니다. 매크로 패키지는 고수준 프로그램 언어와 같은 것이며, 그에 대한 소의 roff 언어는 C 나 어셈블러와 같은 저수준 언어에 비유됩니다.

roff 언어는 저수준의 리퀘스트, 매크로 정의, escape sequence, 캐릭터 라인 변수, 수치 레지스터 또는 사이즈 레지스터, 그리고 C 와 같은 제어 구조를 제공하는 완전한 프로그램 언어입니다.

이 언어의 요소를 따라가는들이나 설명이 필요하겠지요. 리퀘스트는, C, C++ 와 같은 프로그램 언어에 의해 정의되었다 기본적인 정형용 명령입니다. 그에 대해, 매크로는 roff 언어로 기술된 정형용 명령입니다. 문서의 저자는, 리퀘스트와 매크로를 사용할 때의 차이에 눈치챌 것은 없을 것입니다. 어느쪽이나 닷 시작의 단독행으로 기술됩니다. 다만, 바란다면, 유저는 독자적인 매크로를 정의할 수 있습니다.

escape sequence는 인 라인 요소로, backslash 그리고 시작됩니다. 이것들은 다양한 기능을 실장하는데 사용됩니다. 거기에는, (을)를 이용한 비 ASCII 캐릭터의 삽입, (을)를 이용한 캐릭터 라인의 내용의 삽입, (을)를 이용한 레지스터 변수의 삽입, (을)를 이용한 폰트의 변경, (을)를 이용한 문중의 코멘트, (와)과 같이 특수한 제어 캐릭터의 이스케이프, 그 외 많은 기능이 포함됩니다.

포매터
포매터는 groff 문서를 해석해, 그것을 특수한 디바이스에 맞았다 형식으로 변환하기 위한 프론트엔드 프로그램입니다. 고전적인 roff 에는 포매터가 2 개 있습니다. nroff 하지만 텍스트 디바이스용으로, troff 하지만 그래피컬 디바이스용입니다.

이러한 프로그램은 groff 실장에서도 아직 존재합니다만, 통상은 groff (으)로 불리는 프로그램을 통해 액세스 됩니다. 이것에 의해, 옛부터의 기능을 1 개의 프로그램에 결합해, 확장 할 수 있습니다. groff 에는 많은 명령행 옵션이 있습니다. 그 대부분이 troff (으)로부터도들 있고 받은 것입니다. 이 옵션의 밀림으로부터 피할 수 있도록, 유저 프렌들리인 유틸리티 grog (`groff guess'로부터 빼앗긴 이름입니다)(이)가 작성되었습니다. 이것은, 어느 인수를 사용해야할 것인가를, 문서로부터 추측해, 적절한 명령행을 표시합니다. 완벽한 것이 아닙니다만, 착수해에는 좋을 것입니다.

프리프로세서
groff 에서도 아직 이용 가능한 고전적 프리프로세서입니다.

    eqn 수식을 묻기 위한 것입니다.
    grap
        그래피컬 요소를 구성하기 위한의 것입니다 (이 프리프로세서는 groff 와 함께는 따라 오지 않습니다. 추가 패키지입니다).
    grn gremlin 도를 묻기 위한 것입니다.
    pic 그림을 작성하기 위한의 것입니다.
    refer
        참고 문헌의 참조용입니다.
    soelim
        다른 roff 파일을 묻기 위한 것입니다.
    tbl 직사각형의 테이블용입니다.

이러한 프리프로세서는 각각 독자적인 언어를 정의하고 있어, 프리프로세서에 통해지면(자), roff 코드에 변환됩니다. 그러므로, 이러한 언어로 쓰여진 부분은 roff 문서에 묻어 있어도 좋습니다. 이러한 확장 문서는, 실제의 포매터에 걸칠 수 있기 전에, 대응하는 1 개(살) 이상의 프리프로세서에 통해집니다.

프리프로세서 프로그램은, 프리프로세서용으로 한정되고 있는 문서의 부분을 추출해, 변환합니다. 프리프로세서는, 그러한 프로그램명을 사용한 UNIX 파이프라인으로 호출하는 일도, 혹은 groff 옵션으로 자동적으로 호출할 수도 있습니다.

프리프로세서 | groff 옵션
eqn | -e
grap | -G
grn | -g
pic | -p
refer | -R
tbl | -r
soelim | -s

매크로 패키지
매크로 패키지는, 어느 특수한 종류의 문서를 간편한 방법으로 포맷 하는데 적합한 매크로의 집합입니다. 매크로 패키지에 의해, roff 의 쓰기가 현격히 좋아집니다. 패키지의 매크로 정의는, name.tmac (또는 tmac.name )(으)로 불리는 파일에 보관되고 있습니다. 여기서, name (은)는 이 패키지에 대한 roff 내부에서의 명칭입니다. 모든 tmac 파일은, 1 개(살) 혹은 소수의 디렉토리안의 표준의 장소에 보관되고 있습니다.

문서가 사용하는 매크로 패키지는, 포매터의 명령행 옵션 그리고 지정해, 예를 들면 (이)나 (으)로 합니다. 매크로 패키지의 명명 및 그 두는 곳소에 대한 일반적인 자세한 것은 groff_tmac(5) 에 있습니다.

옛부터 있는 유명한 매크로 패키지는 man, mandoc, mdoc 하지만 메뉴얼 페이지용, 그리고 me, ms, mm 하지만 서적, 기사, 그리고 편지용입니다. 이러한 콜렉션 외에도, groff 는 다양한 용도의 새로운 매크로 패키지를 제공하고 있어, 그 수는 증가하고 있습니다. 예를 들면, 다른 파일 형식을 통합하거나 변환하거나 하는 것입니다.

파일명의 확장자(extension)
메뉴얼 페이지 (man 페이지)는 파일명의 확장자(extension)로서 섹션 번호를 취합니다. 예를 들면, 이 문서의 파일명은 roff.7 입니다. 즉, 이 문서는 메뉴얼 페이지의 에 보존되고 있다고 하는 것입니다.

고전적인 매크로 패키지는, 패키지명을 확장자(extension)에 있습니다. 예를 들면, me 매크로 패키지를 사용한 문서는 file.me 되어, mm 매크로 패키지에 대해서는 file.mm , ms 매크로 패키지에 대해서는 file.ms , pic 파일에 대해서는 file.pic 그렇다고 하는 상태입니다.

편집 방법
대부분의 텍스트 문자 편집기는 roff 를 사용한 문서의 편집을 서포트하고 있습니다. 특히 사용하기 편리한 것이, Emacs 에디터 (와)과 그 동료에서의 nroff-mode 입니다.

환경 변수

GROFF_TMAC_PATH
    코론 단락의 검색 디렉토리 리스트입니다. groff_tmac(5) (을)를 참조해 주세요.

GROFF_TYPESETTER
    디폴트의 디바이스입니다.

GROFF_FONT_PATH
    devname 코론 단락의 검색 디렉토리 리스트입니다. troff (은)는, 명령 옵션으로 주어진 디렉토리를 먼저 검색합니다. 다음에, GROFF_FONT_PATH (을)를 찾습니다. 마지막으로, 표준 디렉토리 (/usr/share/groff_font) (을)를 찾습니다.

관련 파일
디폴트에서는, groff (은)는 전데이터 파일을 /usr/share/groff_font 의 서브 디렉토리와 /usr/share/tmac 에 인스톨 됩니다 (예외는 시스템 고유의 매크로 패키지에의 나팔 파일이며, 이것들은 /usr/share/tmac 에 인스톨 됩니다). 이 장소는, 시스템에 따라서는 다를지도 모릅니다. 이후, 전자를 <groff_font_dir> (으)로서 후자를 <groff_macro_dir> (으)로서 표현합니다.

<groff_macro_dir>/troffrc
    troff 용의 초기화 파일

<groff_macro_dir>/name.tmac
<groff_macro_dir>/tmac.name
    매크로 파일

<groff_font_dir>/devname/DESC
    name 디바이스 기술 파일

<groff_font_dir>/devname/F
    name 디바이스의 F 폰트용의 폰트 파일

마지막으로, 로컬의 매크로 디렉토리 /usr/share/tmac (은)는, 사이트 고유의 매크로와 패키지용으로 제공됩니다. 디폴트에서는, 메인의 매크로 디렉토리의 앞에 여기가 검색됩니다.

버그
groff 문서는 현재도 발전도상입니다. 문서간에 일시적으로 작은 어긋나는 점이 생길 가능성이 있습니다.

저자
이 문서는 groff 즉 GNU roff 배포물의 일부입니다. Bernd Warken <bwarken@mayn.de> 가 썼습니다.

이 문서는 FDL (GNU Free Documentation License) 버젼 1.1 이후의 조항의 아래에서 배포되고 있습니다. FDL 의 카피를 시스템상에 가지고 있을 것입니다. 또, 이것은 온라인

    <http://www.gnu.org/copyleft/fdl.html>
그렇지만 입수 가능합니다.

관련 항목
주된 정보원은, groff info(1) 파일입니다.

정의 끝난 groff 언어 요소에 대해서도 groff(7) 메뉴얼 페이지에 기재가 있습니다.

포매터 및 그 나팔에 대해서는 groff(1), grog(1), nroff(1), troff(1) 에 기재가 있습니다.

출력 디바이스용의 포스트프로세서에 대해서는 grodvi(1), grohtml(1), grolbp(1), grolj4(1), grops(1), grotty(1) 에 기재가 있습니다.

표준 프리프로세서에 대해서는 eqn(1), grn(1), grap(1), pic(1), refer(1), soelim(1), tbl(1) 에 기재가 있습니다.

매크로 패키지에 대한 메뉴얼 페이지에는 groff_tmac(5), groff_man(7), groff_markup(7), groff_mdoc(7), groff_mdoc.samples(7), groff_me(7), groff_mm(7), groff_mmroff(7), groff_ms(7) 하지만 포함되어 있습니다.

다음과 같은 유틸리티를 이용할 수 있습니다: addftinfo(1), afmtodif(1), hpftodit(1), indxbib(1), lookbib(1), pfbtops(1), tfmtodit(1), gxditview(1) 입니다.

roff 시스템의 GNU 실장에 대한 자세한 것은 groff_char(7), groff_font(7), groff_out(7) 및 groff 소스 배포물의 메인 디렉토리내의 README 파일을 참조해 주세요. groff 개발 그룹과의 연락의 취하는 방법이나 참가의 방법에 대한 상세도 실려 있습니다.

고전적인 문서는 지금도 온라인으로 입수 가능합니다. 특히 유익한 것이, 인가의 프리인 UNIX 7 용의 벨연오리지날의 회보입니다. 이것은 http://cm.bell-labs.com/cm/cs/cstr.html 에 있습니다. 그리고, 고 Richard S. Stevens 의 콜렉션이 http://www.kohala.com/start/troff/ 에 있습니다.