GROFF_MDOC(7)

명칭
groff_mdoc - groff mdoc 의 실장에 관한 레퍼런스

서식
groff -mdoc file ...

해설
GNU troff(1) 용무의 컨텐트 베이스 그리고 한편 area 베이스 정형용 패키지이다 -mdoc 매크로 패키지를 사용해 UNIX 메뉴얼 페이지를 쓰기 위한 완전한 레퍼런스입니다. 전신이다 -man(7) 패키지는, 폰트의 조작이나 다른 사식 방법의 자세한 것은 개개의 저자에게 맡겨 페이지의 레이아웃을 취급해 왔습니다. -mdoc 그럼, 페이지 레이아웃 매크로는 타이틀, 섹션의 헤더, 디스플레이, 리스트의 매크로로부터 된다 페이지 구조 area (을)를 형성하고 있습니다. 본질적으로 이러한 요소는 정형된 페이지에 있어서의 텍스트의 물리적 위치에 영향을 줍니다. 페이지 구조 area에 가세해 한층 더 메뉴얼 area 및 일반 텍스트 area의 2 개의 area가 있습니다. 일반 텍스트 area는, 텍스트의 일부를 쿼트 하거나 강조하거나 말한 것 같은 작업을 실행하는 매크로로서 정의되고 있습니다. 메뉴얼 area는 명령나 routine, 거기에 UNIX 의 관련 파일을 기술하기 위한 일상 사용되는 인포멀한 말의 부분집합인 매크로로서 정의되고 있습니다. 메뉴얼 area의 매크로는 명령명, 커멘드행의 인수와 옵션, 함수명, 함수의 파라미터, 패스명, 변수명, 다른 메뉴얼 페이지로의 크로스 레퍼런스등을 취급합니다. 이러한 area의 항목은 저자와 메뉴얼 페이지의 장래의 유저의 양자에게 취해 가치가 있는 것입니다. 메뉴얼간에 일관성을 높이는 것에 의해 장래의 문서 툴에의 이행이 용이하게 되는 것이 기대됩니다.

UNIX 메뉴얼 페이지 전체를 통해, 메뉴얼의 엔트리는 단순하게 메뉴얼 페이지 (a man page)로 간주해집니다. 이것은 실제의 페이지수와 관계 않고, 성차별을 하는 의도도 없습니다.

자, 시작하자
이 문서의 나머지의 부분에서 설명되고 있는 소재는 이하와 같은 구성에 되어 있습니다.

1.  TROFF 에 특유인 표현
    매크로의 사용 방법
    인수에 공백 캐릭터를 지정한다
    줄 끝의 공백 캐릭터
    특수 캐릭터의 이스케이프
    그 외의 주의점

2.  메뉴얼 페이지의 템플릿

3.  사용법

4.  타이틀 매크로

5.  메뉴얼 area 및 일반 텍스트 area의 소개
    이 이름에는 무엇이...
    일반적인 구문

6.  메뉴얼 area
    주소
    저자명
    인수
    배치 선언 (섹션 4 마셔)
    명령 수식자
    정의 끝난 변수
    errno  (섹션 2 마셔)
    환경 변수
    플래그
    함수의 선언
    함수의 형태
    함수 (프로그램 라이브러리 routine)
    함수의 인수
    반환값
    종료 스테이터스
    대화적인 명령
    프로그램 라이브러리명
    리터럴
    명칭
    옵션
    패스명
    표준
    변수의 형태
    변수
    메뉴얼 페이지의 크로스 레퍼런스

7.  일반 텍스트 area
    AT&T 매크로
    BSD 매크로
    NetBSD 매크로
    FreeBSD 매크로
    OpenBSD 매크로
    BSD/OS 매크로
    UNIX 매크로
    강조 매크로
    폰트 모드
    울타리/쿼트마크로
    무조작 혹은 통상 텍스트 매크로
    공백 없음 매크로
    섹션의 크로스 레퍼런스
    기호
    수식 기호
    참고 문헌과 인용
    상표명 (두자어와 타입명)
    확장 인수

8.  페이지 구조 area
    섹션 헤더
    서브 섹션 헤더
    단락과 행 스페이스
    키프
    예시와 디스플레이
    리스트와 컬럼

9.  그 외의 매크로

10. 정의 끝난 캐릭터 라인

11. 진단

12. GROFF, TROFF 및 NROFF 를 사용한 정형

13. 관련 파일

14. 관련 항목

15. 버그

TROFF 에 특유인 표현
-mdoc 패키지는, 메뉴얼 페이지를 기술하는 프로세스를 간단하게 하는 것을 목적으로 하고 있습니다. -mdoc (을)를 사용하기 위해서(때문에) GNU troff(1) 의 혼란 한 상세를 배울 필요가 없는 것이 이상입니다만, 몇개인가 정리해야 한다 피할 수 없는 제한 사항이 있습니다. 또, 이 패키지는 고속으로 없다 그렇다고 하는 일도 미리 경고해 둡니다.

  매크로의 사용 방법
GNU troff(1) (와)과 같이, 매크로는 ‘.’ (닷) (을)를 줄머리에 두어, 거기에 계속해 2 캐릭터 (또는 3 캐릭터)로부터 된다 매크로의 명칭을 지정하는 것에 의해 불려 갑니다. 닷과 매크로의 사이에는 스페이스를 둘 수가 있습니다 (다만, 탭을 두는 것은 할 수 없습니다 ). 인수는 매크로의 뒤에 스페이스에서 단락지어 지정할 수가 있습니다 (역시, 탭은 사용할 수 없습니다). 줄머리에 닷을 지정하는 것에 의해 GNU troff(1) 에 거기에 계속되는 2 캐릭터 (혹은 그것보다 많은 캐릭터)를 매크로명으로서 해석하도록 지시하고 있습니다. 최초로 닷 1 몬지를 잡아, 그 뒤로 아무것도 오지 않는 경우는 무시됩니다. 매크로를 기동시키고 싶지 않은 것 같은 문맥으로, 입력행의 선두에 ‘.’ (닷) (을)를 두기 위해서(때문에)는, ‘.’ (닷)의 전에 escape sequence ‘\&’ (을)를 지정합니다. ‘\&’ (은)는 문자 그대로 스페이스폭이 0 으로서 해석되어 출력에는 나타나지 않습니다.

일반적으로 GNU troff(1) 매크로는 취할 수 있는 인수의 수에 제한은 없습니다 (9 개(살) 이상의 인수를 취급할 수 없는 다른 버젼의 troff 와는 다릅니다). 한정되었을 경우입니다만, 인수를 다음의 행에 잇거나 확장하거나 할 수가 있습니다 (후술의 확장 인수 의 섹션을 참조). 거의 모든 매크로로 인용부호에 둘러싸인 인수를 취급할 수가 있습니다 (후술의 인수에 공백 캐릭터를 지정한다 의 섹션을 참조).

-mdoc 에서의 일반 텍스트 area와 메뉴얼 area의 대부분의 매크로는, 호출해 가능한 매크로명을 결정하기 위해서(때문에) 그 인수의 리스트가 구문 분석 된다고 하는 점으로 특별한 것입니다. 이것은 즉, 일반 텍스트 area 또는 메뉴얼 area의 매크로명에 일치해, 한편, 호출해 가능하다라고 판단된 인수 리스트중의 인수는, 처리될 때에 실행되는지, 혹은 불려 간다고 하는 것입니다. 이 경우, 인수가 매크로의 이름이어도 ‘.’ (닷) 그리고 전치 되지 않습니다. 이와 같이 하고 있었던 풀응의 매크로를 상자로 할 수가 있습니다. 예를 들면 옵션 매크로 ‘.Op’ (은)는 플래그 매크로 및 인수 매크로 ‘-’ (와)과 ‘file ...’ (을)를 호출 (이)라고, 옵션의 플래그를 인수와 함께 지정할 수가 있습니다:

[-s bytes]
    하 ‘.Op Fl s Ar bytes’ 그리고 생성됩니다.

캐릭터 라인이 매크로명으로 해석되지 않게 하려면 , 그 캐릭터 라인의 전에 escape sequence ‘\&’ (을)를 지정합니다.

[-s bytes]
    하 ‘.Op \&Fl s \&Ar bytes’ 그리고 생성됩니다.

여기서 캐릭터 라인 ‘-’ (와)과 ‘file ...’ (은)는 매크로로서 해석되고 있지 않습니다. 이 문서를 통해서, 호출해 가능한 인수를 조사하기 위해서(때문에) 인수 리스트가 구문 분석 되는 매크로는 구문 분석 된다 매크로로서 참조해, 인수 리스트로부터 불려 갈 수가 있는 매크로는 호출 가능 매크로로서 참조합니다. -mdoc 의 매크로는 거의 모든 것이 구문 분석 되니까, 이것은 기술적으로는 적당하지 않다 표현입니다만, 항상 매크로를 「호출해 가능하다」라고「다른 매크로를 호출할 수가 있다」라고 표현하는 것은 귀찮은 것이기 (위해)때문에, 「구문 분석 된다」라고 하는 용어를 사용합니다.

  인수에 공백 캐릭터를 지정한다
1 개(살) 이상의 공백 캐릭터를 포함한 캐릭터 라인을 인수로서 지정하고 싶다 경우가 있습니다. 인수 리스트중의 요소가 특정의 줄을 하고 있는 것을 기대하고 있는 매크로에 인수를 지정할 때에 필요하게 되는 일이 있습니다. 게다가 이렇게 하면(자) -mdoc 하지만 빠르게 실행되게 됩니다. 예를 들면, 함수 매크로 ‘.Fn’ 그럼 제 1 인수는 함수명이며, 나머지의 인수가 함수의 파라미터이라고 상정되고 있습니다. ANSI C 그럼, 함수의 파라미터 선언을 괄호로 둘러싸인 파라미터 리스트중에 명시하는 것을 규정하고 있으므로, 각 파라미터는 최악이어도 2 어의 캐릭터 라인이 됩니다. 예를 들면, int foo (와)과 같이 됩니다.

공백을 포함한 인수를 지정하려면 2 방법의 방법이 있습니다. 1 개(살)은, 공백을 포함한 캐릭터 라인을 건네주는데, 고정의 공백, 즉 패딩 되지 않는 공백 캐릭터 ‘\ ’ (을)를 사용하는 방법입니다. 즉, 공백의 앞에 이스케이프 캐릭터 ‘\’ (을)를 지정합니다. 이 방법은 어느 매크로에서도 사용할 수가 있습니다만, 1 행이 너무 길어 졌다 텍스트를 조정할 때의 방해가 된다고 하는 부작용이 있습니다. troff 그럼, 고정의 공백은 다른 인쇄 가능한 캐릭터와 같게 다루어져 통상 기대되도록(듯이) 그 개소에서 캐릭터 라인을 공백이나 개행으로 나누는 것은 행해지지 않게 됩니다. 이 방법은 캐릭터 라인이 행의 경계에 걸치는 것이 바람직하지 않은 경우에 유용합니다. 대체안으로서는, 패딩 가능 (즉 신장 가능)으로 분할 불가능한 공백 ‘\~’ (을)를 사용하는 일이 있습니다 (이것은, GNU troff(1) 확장입니다). 2 번째의 방법은, 캐릭터 라인을 더블 쿼트로 괄일입니다.

예를 들면, 다음과 같이 합니다:

fetch(char *str)
    하 ‘.Fn fetch char\ *str’ 그리고 생성됩니다.

fetch(char *str)
    도 ‘.Fn fetch char *str’ 그리고 생성할 수가 있습니다.

만약, 최초의 예의 공백의 앞 혹은 다음의 예의 더블 쿼트의 전의 ‘\’ 하지만 생략 되고 있었을 경우에는 ‘.Fn’ (은)는 인수가 3 개이라고 간주, 그 결과는

    fetch(char, *str)

됩니다.

  줄 끝의 공백 캐릭터
Troff 하행말에 공백 캐릭터가 있으면(자) 혼란해 버리는 일이 있습니다. <공백><줄 끝> 의 캐릭터의 줄로부터 모든 공백 캐릭터를 없애는 것은 좋은 예방책입니다. 아무래도 줄 끝에 공백 캐릭터를 두는 필요성이 나왔을 경우는, 패딩 되지 않는 공백과 이스케이프 캐릭터 ‘\&’ (을)를 사용하는 것에 의해 대응할 수 있습니다. 예를 들면, ‘string\ \&’ (와)과 같이 합니다.

  특수 캐릭터의 이스케이프
개행 ‘\n’ (와)과 같은 특수 캐릭터는, backslash를 보존하기 위해서 ‘\’ (을)를 ‘\e’ 그리고 치환 (예를 들어 ‘\en’ (으)로 한다)라고 취급합니다.

  그 외의 주의점
표시 area외에서 하늘의 입력행이 발견되었을 경우에는 경고가 발생합니다 (후술). 대신에 ‘.sp’ (을)를 사용해 주세요 ( -mdoc 매크로를 사용해, 저레벨 명령을 사용하지 않게 하면(자) 훨씬 좋습니다).

선두에 공백을 두면(자) 행 분할이 생겨 그대로 출력되어 버립니다. 가능하면 이렇게 되는 것을 피해 주세요. 같이 통상의 텍스트행에 대해 단어간에 2 개 이상의 공백 캐릭터를 사용하지 말아 주세요. 이것은, 다른 텍스트 포멧터란 대조적입니다. 공백 캐릭터를 2 개 이상 두어도 1 개의 공백 캐릭터에 옮겨지지 않습니다

인수로서 ‘’ (을)를 직접 건네줄 수 없습니다. 대신에 ‘\*[q]’ (혹은 ‘\*q’) (을)를 사용해 주세요.

디폴트에서는, troff(1) (은)는 문장을 종료시키는 구두점의 뒤에 공백 캐릭터를 2 개 삽입합니다. 즉, ‘’) 혹은 ‘'’ 등의 캐릭터는 그대로 다루어져 문장의 종료에는 영향을 주지 않습니다. 이 동작을 변경하려면 , 닷의 전 혹은 후에 ‘\&’ (을)를 삽입해 주세요.

    The
    .Ql .
    character.
    .Pp
    The
    .Ql \&.
    character.
    .Pp
    .No test .
    test
    .Pp
    .No test.
    test

(은)는,

The ‘’. character.

The ‘’. character.

test. test

test. test

됩니다.

1 행 째 및 3 행 째에 보여지도록(듯이), -mdoc (은)는 매크로 인수 중(안)에서는 구두점을 특별히 취급합니다. 이것에 대해서는, 후술의 일반적인 구문 시에로 말합니다. 같은 방법으로, 폭 0 의 공백을 계속하는 것으로, 생략형의 뒤에 계속된 피리어드를 보호하지 않으면 안됩니다. 예를 들면 ‘e.g.\&’ (와)과 같이 합니다.

메뉴얼 페이지의 원시 파일중의 코멘트는, 독립한 행에서는 ‘.\"’ , 어떠한 입력이 있던 다음에는 ‘\"’ (을)를, 혹은 어떠한 장소에서도 사용하고 싶은 경우는 ‘\#’ (을)를 사용할 수가 있습니다 (후자는 GNU troff(1) 확장입니다). 이러한 행의 나머지의 부분은 무시됩니다.

메뉴얼 페이지의 템플릿
메뉴얼 페이지의 내용은 다음과 같은 기본적인 템플릿으로부터 간단하게 작성할 수 있습니다.

    .\" 이하의 항목은 모든 메뉴얼 페이지로 필요한 항목입니다.
    .Dd 세월, 해
    .Os [ operating system] [버젼/릴리스]
    .Dt 문서 타이틀 [섹션 번호] [아키텍쳐/볼륨]
    .Sh NAME
    .Nm 명칭
    .Nd 명칭에 대한 1 행에서의 설명
    .\" 다음의 항목은 섹션 2, 3 에서만 필요한 것입니다.
    .\" .Sh LIBRARY
    .Sh SYNOPSIS
    .Sh DESCRIPTION
    .\" 이하의 항목에 대해서는, 필요에 따라서 코멘트를 빗나가게 해 사용해 간다
    .\" 다 차이.
    .\" .Sh IMPLEMENTATION NOTES
    .\" 이 다음의 항목은 섹션 2, 3, 9 에서만 필요한, 함수의
    .\" 반환값입니다.
    .\" .Sh RETURN VALUES
    .\" 다음의 항목은 섹션 1, 6, 7, 8, 9 에서만 필요한 것입니다.
    .\" .Sh ENVIRONMENT
    .\" .Sh FILES
    .\" .Sh EXAMPLES
    .\" 다음의 항목은 섹션 1, 6, 7, 8, 9 에서만 필요한 것입니다.
    .\"     ((쉘에의) 명령의 반환값과
    .\"       fprintf/stderr 타입의 진단입니다)
    .\" .Sh DIAGNOSTICS
    .\" .Sh COMPATIBILITY
    .\" 다음의 항목은 섹션 2, 3, 9 에서만 필요한,
    .\"     에러 핸들링과 시그널 핸들링입니다.
    .\" .Sh ERRORS
    .\" .Sh SEE ALSO
    .\" .Sh STANDARDS
    .\" .Sh HISTORY
    .\" .Sh AUTHORS
    .\" .Sh BUGS

이 템플릿에 있어서의 최초의 항목은 매크로 ‘.Dd’, ‘.Os’, 및 ‘.Dt’ (이어)여, 각각 문서의 일자, 메뉴얼 페이지 혹은 소재가 되고 있는 소스의 개발이나 변경의 대상이 된 operating system, 그리고 메뉴얼 페이지의 타이틀을 속하는 메뉴얼의 섹션 번호와 함께 ( 대문자로 ) 지정한 것, 되고 있습니다. 이러한 매크로는 그 페이지를 식별하는 것이어, 후술의 타이틀 매크로 그리고 해설됩니다.

템플릿중의 나머지의 항목은 섹션의 헤더 (.Sh) (이어)여, 그러한 집 NAME, SYNOPSIS, 및 DESCRIPTION (은)는 필수 항목입니다. 이러한 헤더에 대해서는 메뉴얼 area (을)를 설명한 후, 페이지 구조 area 그리고 해설됩니다. 몇개의 컨텐트 매크로는 페이지 레이아웃 매크로의 설명에 사용되고 있기 때문에, 페이지 레이아웃 매크로의 전에 컨텐트 매크로에 대해 읽는 것을 추천 합니다.

사용법
다음에 설명하는 매크로는 모두, 옵션의 인수는 꺽쇄묶음 ([])으로 괄. 생략 부호 (‘...’) (은)는 게다가 0 개 이상의 인수가 있는 것을 나타내고 있습니다. 파라미터의 대체치는 ‘|’ 그리고 단락지어 가리킵니다. 필수 파라미터에 대체치가 있는 경우는, ( ‘|’ (와)과 함께) 안괄호 ({})를 이용해 값의 조를 괄. 메타 변수는 산괄호 (<>) 중(안)에서 지정됩니다.

례:

.Xx <foo> {bar1 | bar2} [-test1 [-test2 | -test3]] ...

특별히 명시하지 않는 한, 모든 매크로는 구문 분석 되어 호출해 가능한 것입니다.

대부분의 매크로는 디폴트의 폭의 값을 가지고 있어 이것을 ‘.Bl’ 및 ‘.Bd’ 매크로용으로 label width (-width) 혹은 offset (-offset) (을)를 지정하는데 사용할 수가 있습니다. -mdoc 패키지의 로컬인 변경에 의존할리가 없게, 이 매우 애매한 기능은 사용하지 않는 것을 추천 합니다.

타이틀 매크로
타이틀 매크로는 페이지 구조 area의 일부입니다만, 메뉴얼 페이지를 어제 쓰기 시작하려고 생각했다고 하는 사람을 위해서(때문에), 최초로, 다른 것과는 별도로 기술되고 있습니다. 3 개의 헤더 매크로로 문서 또는 메뉴얼 페이지의 타이틀, operating system, 및 원저의 일자를 지정합니다. 이러한 매크로는 문서의 최초로 한 번만 불려 가는 것으로, 헤더와 footer를 구성하기 위해(때문에)인 만큼 사용됩니다.

.Dt [<문서 타이틀>] [<섹션 번호>] [<볼륨>] 문서 타이틀은 메뉴얼 페이지의 주제이며, troff 의 제한에 의해 대문자 (이)가 아니면 안됩니다. 생략 되었을 경우, ‘UNTITLED’ 하지만 사용됩니다. 섹션 번호는 1, ..., 9 의 범위의 번호 혹은 ‘unass’, ‘draft’, ‘paper’ 의 어느쪽이든을 취할 수가 있습니다. 섹션 번호가 지정되어 있어 볼륨명이 주어지지 않았다 경우에는, 디폴트의 볼륨명이 사용됩니다.

    그럼, 다음의 섹션이 정의되고 있습니다:

    1 |
    2 |
    3 |
    4 |
    5 |
    6 |
    7 |
    8 |
    9 |

    볼륨명은 임의인지, 혹은 다음의 것을 취할 수가 있습니다:

    USD |
    PS1 |
    AMD |
    SMM |
    URM |
    PRM |
    KM |
    IND |
    LOCAL |
    CON |

    호환성을 유지하기 (위해)때문에, ‘IND’ 대신에 ‘MMI’ (을)를 사용할 수가 있어 ‘LOCAL’ 대신에 ‘LOC’ (을)를 사용할 수 있습니다. 앞의 겉(표)의 값은, 새로운 볼륨명을 지정합니다. 제 3 파라미터가 컴퓨터 아키텍쳐를 나타내는 키워드로 어느 경우, 그 값은 제 2 파라미터로 지정한 볼륨명의 전에 추가됩니다. 디폴트에서는 다음의 아키텍쳐에 관한 키워드가 정의되고 있습니다:

    alpha, amiga, arc, arm26, arm32, atari, bebox, cobalt, evbsh3, hp300, hpcmips, i386, luna68k, m68k, mac68k, macppc, mips, mmeye, mvme68k, news68k, newsmips, next68k, ofppc, pc532, pmax, powerpc, prep, sgimips, sh3, sparc, sparc64, sun3, tahoe, vax, x68k

    다음의 예에서는, 메뉴얼 페이지의 헤더의 좌측 (이것은 우측과 같은 것입니다)과 중앙에 쓰여지는 캐릭터 라인을 나타내고 있습니다.

    .Dt FOO 7
        ‘FOO(7)’ ‘’
    .Dt FOO 2 i386
        ‘FOO(2)’ ‘/’
    .Dt FOO  bar
        ‘FOO’ ‘bar’

    로컬인 추가 항목이나 OS 에 특화한 추가 항목이, 파일 mdoc.local 에 있을지도 모릅니다. 이 파일중에서 ‘volume-ds-XXX’ (전자의 타입에 대해) 및 ‘volume-as-XXX’ (후자의 타입에 대해) (이)라는 이름의 캐릭터 라인을 검색해 주세요. 여기서 ‘XXX’ 하 ‘.Dt’ 매크로로 사용되는 키워드를 나타내고 있습니다.

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다.

.Os [<operating system>] [<릴리스 번호>] 제 1 파라미터가 하늘의 경우, 기본값 ‘’ 하지만 사용됩니다. 이것은, 로컬의 설정 파일 mdoc.local 그리고 덧쓰기할 수 있습니다. 일반적으로는, operating system의 명칭에는 일반적인 두자어 (약칭)를 사용하지 않으면 안됩니다. 예를 들면 BSD (이)나 ATT 그렇다고 한 것입니다. 릴리스 번호는, 각 시스템에서의 표준의 릴리스의 명명법을 사용합니다. 다음의 겉(표)에서는, 몇개인가 사전에 정의되고 있는 operating system에 대해 취할 수 있는 제 2 인수를 리스트 하고 있습니다. ‘.Dt’ (와)과 같이, 로컬인 추가 항목이 mdoc.local 에 정의되고 있을지도 모릅니다. 이 파일중에서 ‘operating-system-XXX-YYY’ (이)라는 이름의 캐릭터 라인을 검색해 주세요. 여기서 ‘XXX’ (은)는 operating system의 두자어 (약칭) 그리고 ‘YYY’ 하지만 릴리스 ID 입니다.

    ATT 7th, 7, III, 3, V, V. 2, V. 3, V. 4

    BSD 3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r, 4.3R, 4.4

    NetBSD
        0.8, 0.8a, 0.9, 0.9a, 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e, 1.3, 1.3a, 1.4, 1.5, 1.6

    FreeBSD
        1.0, 1.1, 1.1. 5, 1.1. 5.1, 2.0, 2.0. 5, 2.1, 2.1. 5, 2.1. 6, 2.1. 7, 2.2, 2.2. 1, 2.2. 2, 2.2. 5, 2.2. 6, 2.2. 7, 2.2. 8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 5.0

    ATT 에 관해서는, 판별할 수 없는 제 2 파라미터가 있을 때에는 그것을 캐릭터 라인 UNIX 에 옮겨놓습니다. 사전에 정의되고 있는 그 외의 두자어 (약칭)에 대해서, 그러한 파라미터는 무시되어 경고 메세지가 출력됩니다. 인식할 수 없는 인수는, 페이지 footer중에 기술된 대로 표시됩니다. 예를 들면, 전형적인 footer는 다음과 같이 되겠지요:

        .Os BSD 4.3

    하 ‘4.3 Berkeley Distribution’ 됩니다. 또, 로컬로 만들어진 세트의 예에서는,

        .Os CS Department

    하 ‘CS Department’ 됩니다.

    ‘.Os’ 매크로가 없는 경우, 페이지의 왼쪽 하단 모서리는 보기 흉해져 버리겠지요.

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다.

.Dd [
    <월> <일>, <년>] ‘Dd’ 에 인수가 없는 경우는, 일자에는 ‘기준 시점 (협정 세계시 1970년 1월 1일 00:00:00)’ 하지만 사용됩니다. 정확히 3 개(살) 인수가 있는 경우에는, 그것들은 연결되어 분할할 수 없는 공백에서 나눌 수 있던 것이 됩니다.

        .Dd January 25, 2001

    그 이외의 경우는 현재의 일자가 사용되어 파라미터는 무시됩니다.

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다.

메뉴얼 area 및 일반 텍스트 area의 소개

  이 이름에는 무엇이 ...
메뉴얼 area의 매크로명은 명령나 써브루틴, 거기에 관련 파일을 설명하기 위해서 사용되고 있는 일상의 인포멀한 말로부터 놓치고 있습니다. 이 말과 조금 다른 바리에이션의 것이 메뉴얼 페이지를 쓰는데 있어서의 3 개(살)이 다른 측면을 기술하는데 사용됩니다. 최초의 것은, -mdoc 매크로 사용 방법의 설명입니다. 2 번째는 -mdoc 매크로를 이용했다 UNIX 명령의 기술입니다. 3 번째는 명령을 통상의 말의 감각으로 유저에게 나타낸 것입니다. 이것은 즉, 메뉴얼 페이지의 텍스트중에서의 명령의 설명이 됩니다.

최초의 케이스에서는, troff(1) 매크로는 그것 자신, 일종의 명령이 되고 있습니다. troff 명령은 일반적으로 이하와 같은 형식을 취합니다.

.Xx argument1 argument2 ...

‘.Xx’ (은)는 매크로 명령 혹은 요구를 나타내고 있어 거기에 계속되는 것은 모두 처리되어야 할 인수로서 처리됩니다. 2 번째의 케이스에서는, 컨텐트 매크로를 사용한다 UNIX 명령의 기술이 좀 더 포함됩니다. 전형적인 SYNOPSIS 명령행은 이와 같이 표시됩니다.

filter [-flag] <infile> <outfile>

여기서 filter (은)는 명령명이며, 꺽쇄묶음으로 둘러싸인 캐릭터 라인 -flag 하 플래그 인수로, 이것은 꺽쇄묶음으로 둘러싸는 것에 의해 옵션인 것을 가리키고 있습니다. -mdoc 의 용어에서는, <infile> 및 <outfile> 하 메타 인수 (이)라고 칭해지고 있습니다. 이 예에서는, 유저는 산괄호 (<>) 중(안)에서 주어진 메타 인수를 실제의 파일명에 옮겨놓지 않으면 안됩니다. 이 문서에서는, 메타 인수는 -mdoc 명령을 기술하는데 사용하고 있는 것에 주의해 주세요. 많은 메뉴얼 페이지에서는, 메타 변수는 일부러 산괄호를 사용해 쓰여져 있지 않습니다. 위의 예를 정형한 매크로는 이하의 것입니다.

    .Nm filter
    .Op Fl flag
    .Ao Ar infile Ac Ao Ar outfile Ac

3 번째의 케이스에서는, 명령의 설명이나 구문에 상기의 예의 양쪽 모두가 사용되어 한층 더 세세한 기술이 추가되겠지요. 위의 예에서의 인수 <infile> 및 <outfile> 하 오퍼랜드 혹은 파일 인수 (으)로서 참조됩니다. 명령행의 인수의 리스트는 꽤 길어지는 경우도 있습니다.

make
    [-eiknqrstv] [-D variable] [-d flags] [-f makefile] [-I directory] [-j max_jobs] [variable=value] [target ...]

여기에서는 명령 make 에 붙어 기술하고 있어, makefile (을)를 플래그 -f 의 인수로 하고 있습니다. 또 옵션의 파일 오퍼랜드이다 target 에 대해서도 언급하고 있습니다. 말에서의 설명에서는, 이러한 상세한 기술이 혼란을 막아 줍니다만, -mdoc 패키지에는 플래그 에의 인수를 위한 매크로가 없습니다. 그 대신에 target (와)과 같은 오퍼랜드나 파일 인수에 사용되는 인수 매크로 ‘file ...’ 하지만 variable (와)과 같은 플래그에의 인수와 같게 사용됩니다. 이 make 명령행은 다음의 지정에 의해 생성되고 있습니다.

    .Nm make
    .Op Fl eiknqrstv
    .Op Fl D Ar variable
    .Op Fl d Ar flags
    .Op Fl f Ar makefile
    .Op Fl I Ar directory
    .Op Fl j Ar max_jobs
    .Op Ar variable Ns = Ns Ar value
    .Bk
    .Op Ar target ...
    .Ek

매크로 ‘.Bk’ 및 ‘.Ek’ 하 키프 섹션에 대해 해설되고 있습니다.

  일반적인 구문
메뉴얼 area의 매크로와 일반 텍스트 area의 매크로와는 몇개인가 작은 차이가 있지만, 동일한 구문을 사용하고 있습니다. 특히, ‘.Ar’, ‘.Fl’, ‘.Nm’, 및 ‘.Pa’ (은)는 인수없이 불려 갔을 때의 차이 밖에 없습니다. 또, ‘.Fn’ 및 ‘.Xr’ (은)는 인수의 리스트의 차례가 다릅니다. 모든 컨텐트 매크로가 구두점을 인식해, 그것을 올바르게 취급하려면 , 각각의 구두점 캐릭터가 선행하는 공백에서 분리되어 있을 필요가 있습니다. 다음과 같이 지정되어 있는 경우,

    .Ar sptr, ptr),

그 결과는 이하와 같이 됩니다.

    sptr, ptr),

여기에서는 구두점은 인식되지 않고, 모든 출력은 ‘.Ar’ 그리고 사용되는 폰트로 행해지고 있습니다. 구두점이 공백 캐릭터로 단락지어지고 있는 경우,

    .Ar sptr , ptr ) ,

결과는 이하와 같이 됩니다.

    sptr, ptr),

이번은 구두점이 인식되어 출력은 디폴트의 폰트로 행해지고 인수 캐릭터 라인과는 구별되고 있습니다. 구두점 캐릭터의 특별한 의미를 없애려면 , ‘\&’ 그리고 이스케이프 해 주세요.

troff (은)는 매크로 랭귀지로서의 한계로부터, 이하와 같은, 수학, 논리학, 인용부호의 집합의 멤버를 포함한 캐릭터 라인을 표현하는 것은 곤란합니다.

    {+,-,/,*,%,<,>,<=,>=,=,==,&,`, ',"}

문제인 것은, 캐릭터에 의해 시사되고 있는 조작 혹은 평가가, 실행 되는 것이 당연하면(자) troff 하지만 가정하는 경우가 있는 것입니다. 이러한 캐릭터가 예기치 않은 형태로 평가되지 않게 하려면 , ‘\&’ 그리고 이것들을 이스케이프 해 주세요. 최초의 컨텐트 매크로는, 이하의 ‘.Ad’ 에 두어, 그 전형적인 구문이 나타나고 있습니다.

메뉴얼 area

  주소
주소 매크로는 주소의 구성을 식별합니다.

    사용법: .Ad <주소> ...

.Ad addr1
    addr1
.Ad addr1 .
    addr1.
.Ad addr1 , file2
    addr1, file2
.Ad f1 , f2 , f3 :
    f1, f2, f3:
.Ad addr ) ) ,
    addr)),

디폴트의 캐릭터폭은 12n 입니다.

  저자명
‘.An’ 매크로는 문서화 되고 있는 항목의 저자의 이름, 혹은 실제의 메뉴얼 페이지의 저자의 이름을 지정하기 위해서 사용됩니다.

    사용법: .An <저자명> ...

.An Joe Author
    Joe Author

.An Joe Author ,
    Joe Author,

.An Joe Author Aq nobody@FreeBSD.org
    Joe Author <nobody@FreeBSD.org>

.An Joe Author ) ) ,
    Joe Author)),

디폴트의 캐릭터폭은 12n 입니다.

AUTHORS 섹션에서는, ‘.An’ 리퀘스트는 개행을 일으켜, 새로운 이름이 각각의 행에 표시됩니다. 이 동작이 바람직하지 않은 경우,

    .An -nosplit

(을)를 호출하는 것으로 무효로 할 수 있습니다. 각각의 행에 표시시키는 동작에 되돌리고 싶은 경우는,

    .An -split

(와)과 기술합니다.

  인수
인수 매크로 .Ar (은)는 명령행의 인수를 참조하려면 언제라도 사용할 수가 있습니다. 인수없이 불렸을 경우, ‘file ...’ 하지만 출력이 됩니다.

    사용법: .Ar [<인수>] ...

.Ar file ...
.Ar file1
    file1
.Ar file1 .
    file1.
.Ar file1 file2
    file1 file2
.Ar f1 f2 f3 :
    f1 f2 f3:
.Ar file ) ) ,
    file)),

디폴트폭은 12n 입니다.

  배치 선언 (섹션 4 마셔)
‘.Cd’ 매크로는 섹션 4 의 메뉴얼에 대해, 디바이스 인터페이스의 config(8) 에 의한 선언의 설명에 사용됩니다.

    사용법: .Cd <인수> ...

.Cd device le0 at scode?
    device le0 at scode?

SYNOPSIS 섹션에서는 ‘.Cd’ 리퀘스트는 그 인수가 표시되는 전후로 개행을 넣습니다.

디폴트폭은 12n 입니다.

  명령 수식자
명령 수식자는 ‘.Cm’ 매크로가 모든 인수의 전에 데쉬 캐릭터를 붙이지 않는 것을 제외해, ‘.Fl’ (플래그) 명령와 같습니다. 전통적으로 플래그는 데쉬 캐릭터에 계속해 지정됩니다만, 이 방법을 사용하지 않는 명령나 커멘드의 부분집합도 있습니다. 명령 수식자는 에디터 커멘드와 같은 대화적인 커멘드에서도 지정되는 일이 있습니다. 플래그 섹션을 참조해 주세요.

디폴트폭은 10n 입니다.

  정의 끝난 변수
인클루드 파일에 대해 정의되고 있는 변수 (혹은 정수)는 매크로 ‘.Dv’ 에 의해 지정합니다.

    사용법: .Dv <정의 끝난 변수> ...

.Dv MAXHOSTNAMELEN
    MAXHOSTNAMELEN
.Dv TIOCGPGRP )
    TIOCGPGRP)

디폴트폭은 12n 입니다.

  errno
‘.Er’ errno 매크로는, 섹션 2, 3, 9 의 프로그램 라이브러리 routine에 있어서의 에러의 반환값을 지정합니다. 아래와 같은 2 번째의 예에서는 ‘.Er’ (은)는 일반 텍스트 area 매크로이다 ‘.Bq’ (이것은 섹션 2 의 메뉴얼 페이지로 사용되고 있습니다)(와)과 함께 사용되고 있습니다.

    사용법: .Er <errno 의 타입> ...

.Er ENOENT
    ENOENT
.Er ENOENT ) ;
    ENOENT);
.Bq Er ENOTDIR
    [ENOTDIR]

디폴트폭은 17n 입니다.

  환경 변수
‘.Ev’ 매크로는 환경 변수를 지정합니다.

    사용법: .Ev <인수> ...

.Ev DISPLAY
    DISPLAY
.Ev PATH .
    PATH.
.Ev PRINTER ) ) ,
    PRINTER)),

디폴트폭은 15n 입니다.

  플래그
‘.Fl’ 매크로는 명령행의 플래그를 취급합니다. 플래그의 전에는 데쉬 ‘-’ 하지만 삽입됩니다. 데쉬가 붙지 않는 대화적인 명령을 위해서(때문에) ‘.Cm’ (명령 수식자) 매크로가 준비되어 있습니다. 이것은 데쉬를 붙이지 않는 것을 제외해 같은 기능을 합니다.

    사용법: .Fl <인수> ...

.Fl -
.Fl cfv
    -cfv
.Fl cfv .
    -cfv.
.Cm cfv .
    cfv.
.Fl s v t
    -s -v -t
.Fl - ,
    --,
.Fl xyz ) ,
    -xyz),
.Fl |
    |

인수없이 ‘.Fl’ 매크로를 지정하면(자), 표준 입력/표준 출력을 의미하는 데쉬가 됩니다. ‘.Fl’ 매크로에 데쉬를 1 개 주면(자), 2 개의 데쉬가 되는 것에 주의해 주세요.

디폴트폭은 12n 입니다.

  함수의 선언
‘.Fd’ 매크로는 SYNOPSIS 섹션에 대해, 섹션 2 또는 3 의 함수의 설명으로 사용됩니다. 이 매크로는 호출해 불가능하고, 구문 분석도 되고 선.

    사용법: .Fd <인수> ...

.Fd #include <sys/types.h>
    #include <sys/types.h>

SYNOPSIS 섹션에서는, 함수가 벌써 나타나고 있어 개행이 아직되어 있지 않은 경우에는 ‘.Fd’ 리퀘스트는 개행을 넣습니다. 이것에 의해 전의 함수 호출과 다음의 함수의 선언동안에 최적인 행간이 설정됩니다.

‘.In’ (#include 문장) 매크로는, 이상의 예를 짧게 기술한 것입니다. 이 매크로는 C 프로그램중에서 인클루드 된다 C 헤더 파일을 지정합니다. 이 매크로도 개행을 삽입해, 호출해 불가능하고, 구문 분석 되는 일도 없습니다.

    사용법: .In <헤더 파일>

.In stdio.h
    <stdio.h>

  함수의 형태
이 매크로는 SYNOPSIS 섹션으로 사용하는 것입니다. 메뉴얼 페이지중의 다른 장소에서도 문제 없게 사용할 수가 있습니다만, 섹션 2 로 3 의 SYNOPSIS 섹션에 대해 커널의 통상의 형식에서 함수의 형태를 나타내는 것이 이 매크로의 목적입니다 (이 매크로는 함수명이 다음의 행에 놓여지도록(듯이) 개행을 삽입합니다).

    사용법: .Ft <형> ...

.Ft struct stat
    struct stat

  함수 (프로그램 라이브러리 routine)
‘.Fn’ 매크로는 ANSI C 의 기법을 규범으로 하고 있습니다.

    사용법: .Fn <함수> [<파라미터>] ...

.Fn getchar
    getchar()
.Fn strlen ) ,
    strlen()),
.Fn align char *ptr ,
    align(char *ptr),

다른 매크로를 호출하면(자) ‘.Fn’ 호출의 종료를 의미하는 것에 주의해 주세요 (닫고 괄호가 그 개소에 삽입됩니다).

많은 파라미터를 취하는 함수 (이것은 분별없게 않은 것입니다만)에서는, ‘.Fo’ 매크로 (함수 매크로의 개시)와 ‘.Fc’ 매크로 (함수 매크로의 종료)를 ‘.Fa’ (함수의 인수)(와)과 함께 사용해, 이 제한을 회피할 수가 있습니다.

사용예:

    .Ft int
    .Fo res_mkquery
    .Fa "int op"
    .Fa "char *dname"
    .Fa "int class"
    .Fa "int type"
    .Fa "char *data"
    .Fa "int datalen"
    .Fa "struct rrec *newrr"
    .Fa "char *buf"
    .Fa "int buflen"
    .Fc

생성 결과:

int res_mkquery(int op, char *dname, int class, int type, char *data, int datalen, struct rrec *newrr, char *buf, int buflen)

SYNOPSIS 섹션에서는, 함수는 항상 행의 선두로부터 개시됩니다. SYNOPSIS 섹션에 대해 복수의 함수가 나타나고 있어 함수의 형태가 나타나지 않는 경우, 개행이 삽입되어 현재의 함수명과 그 전의 함수명의 사이에 최적인 개행량이 설정됩니다.

‘.Fn’ 및 ‘.Fo’ 의 디폴트폭의 값은 각각 12n 로 16n 입니다.

  함수의 인수
‘.Fa’ 매크로는 함수의 인수 (파라미터)를 메뉴얼의 SYNOPSIS 의 섹션외에서 참조하는 경우, 혹은 ‘.Fn’ 대신에 ‘.Fo’ 및 ‘.Fc’ 울타리 매크로를 사용했을 경우에는 SYNOPSIS 의 섹션내에서 참조하는 경우에도 사용됩니다. ‘.Fa’ (은)는 구조체의 멤버를 참조하는 경우에도 사용됩니다.

    사용법: .Fa <함수의 인수> ...

.Fa d_namlen ) ) ,
    d_namlen)),
.Fa iov_len
    iov_len

디폴트폭은 12n 입니다.

  반환값
‘.Rv’ 매크로는 RETURN VALUES 의 섹션으로 사용하는 텍스트를 생성합니다.

    사용법: .Rv [-std] [<함수> ...]

예를 들면, ‘.Rv -std atexit’ (은)는 다음의 텍스트를 생성합니다.

-std 옵션은 섹션 2 로 3 의 메뉴얼 페이지에서만 유효합니다. 현재로서는, 이 매크로는 -std 플래그없이 사용해도 아무것도 일어나지 않습니다.

  종료 스테이터스
‘.Ex’ 매크로는 DIAGNOSTICS 의 섹션으로 사용하는 텍스트를 생성합니다.

    사용법: .Ex [-std] [<유틸리티> ...]

예를 들면 ‘.Ex -std cat’ (은)는 다음의 텍스트를 생성합니다.

-std 옵션은 섹션 1 으로 6 으로 8 의 메뉴얼 페이지에서만 유효합니다. 현재로서는, 이 매크로는 -std 플래그없이 사용해도 아무것도 일어나지 않습니다.

  대화적인 명령
‘.Ic’ 매크로는 대화적인 명령, 혹은 내부 커멘드를 지정합니다.

    사용법: .Ic <인수> ...

.Ic :wq
    :wq
.Ic do while {...}
    do while {...}
.Ic setenv , unsetenv
    setenv, unsetenv

디폴트폭은 12n 입니다.

  프로그램 라이브러리명
‘.Lb’ 매크로는, 함수가 어느 프로그램 라이브러리에 짜넣어지는지를 지정합니다.

    사용법: .Lb <인수> ...

‘.Lb’ 매크로에 대해서 사용 가능한 인수와 결과는 다음과 같습니다:

libarm32
    libarm32
libc
    libc
libcompat
    libcompat
libcrypt
    libcrypt
libcurses
    libcurses
libedit
    libedit
libi386
    libi386
libipsec
    libipsec
libkvm
    libkvm
libm
    libm
libmenu
    libmenu
libossaudio
    libossaudio
libposix
    libposix
libresolv
    libresolv
libtermcap
    libtermcap
libutil
    libutil
libz
    libz

로컬인 추가 항목이나 OS 특유의 추가 항목이, 파일 mdoc.local 에 있을지도 모릅니다. ‘str-Lb-XXX’ (이)라는 이름의 캐릭터 라인을 검색해 주세요. 여기서 ‘XXX’ 하 ‘.Lb’ 매크로와 함께 사용되는 키워드를 나타내고 있습니다.

  리터럴
리터럴 매크로 ‘.Li’ (은)는 특수 캐릭터나 변수 정수, 그 외 타입 된 대로 표시할 필요가 있는 것에 사용할 수가 있습니다.

    사용법: .Li <인수> ...

.Li \en
    \n
.Li M1 M2 M3 ;
    M1 M2 M3;
.Li cntrl-D ) ,
    cntrl-D),
.Li 1024 ...
    1024 ...

디폴트폭은 16n 입니다.

  명칭
‘.Nm’ 매크로는 문서의 타이틀이나 Subject명을 지정하기 위해서 사용됩니다. 이 매크로는 불려 갔을 때의 제 1 인수를 기억해 둔다고 한다 바뀐 특성을 가지고 있어 그것은 항상 그 페이지의 Subject명이어야 합니다. 인수없이 불려 가면(자) ‘.Nm’ (은)는 저자를 위해서(때문에) 최저한의 일을 한다고 하는 의미로, 이 초기화된 명칭을 출력합니다. 주: 섹션 2 또는 3 의 문서의 함수명은 NAME 섹션에 대해 ‘.Nm’ 그리고 지정되어 SYNOPSIS 섹션이나 나머지의 섹션에서는 ‘.Fn’ 그리고 지정됩니다. csh(1) 에서의 ‘while’ 명령의 키워드와 같은 대화적인 커멘드에서는 ‘.Ic’ 매크로를 사용할 필요가 있습니다. ‘.Ic’ (은)는 대부분 ‘.Nm’ (와)과 동일합니다만, 그것이 사용되었을 때의 제 1 인수를 기억할 수 없습니다.

    사용법: .Nm [<인수>] ...

.Nm groff_mdoc
    groff_mdoc
.Nm \-mdoc
    -mdoc
.Nm foo ) ) ,
    foo)),
.Nm :
    groff_mdoc:

디폴트폭은 10n 입니다.

  옵션
‘.Op’ 매크로는 명령행의 나머지의 모든 인수를 옵션인 것을 나타내는 꺽쇄묶음으로 둘러싸, 말미의 구두점은 꺽쇄묶음의 밖에 둡니다. ‘.Oo’ 매크로와 ‘.Oc’ 매크로 (각각 열어 꺽쇄묶음이라고 닫고 꺽쇄묶음을 생성합니다)는 복수행에 건너 사용할 수가 있어 또 닫고 괄호의 정확한 위치를 지정하는데 사용할 수가 있습니다.

    사용법: .Op [<옵션>] ...

.Op []
.Op Fl k
    [-k]
.Op Fl k ) .
    [-k]).
.Op Fl k Ar kookfile
    [-k kookfile]
.Op Fl k Ar kookfile ,
    [-k kookfile],
.Op Ar objfil Op Ar corfil
    [objfil [corfil]]
.Op Fl c Ar objfil Op Ar corfil ,
    [-c objfil [corfil]],
.Op word1 word2
    [word1 word2]
.Li .Op Oo Ao option Ac Oc ...
    .Op [<options>] ...

이것은, ‘.Oo’ 매크로와 ‘.Oc’ 매크로를 사용한 전형적인 예입니다:

    .Oo
    .Op Fl k Ar kilobytes
    .Op Fl i Ar interval
    .Op Fl c Ar count
    .Oc

출력 결과:

[ [-k kilobytes] [-i interval] [-c count]]

‘.Op’ 매크로 및 ‘.Oo’ 매크로의 디폴트폭은 각각 14n 로 10n 입니다.

  패스명
‘.Pa’ 매크로는 패스명 혹은 파일명을 정형합니다. 인수없이 불렸을 경우, ‘~’ 캐릭터 라인이 출력이 되어, 이것은 현재의 유저의 홈 디렉토리를 나타내고 있습니다.

    사용법: .Pa [<패스명>] ...

.Pa ~
.Pa /usr/share
    /usr/share
.Pa /tmp/fooXXXXX ) .
    /tmp/fooXXXXX).

디폴트폭은 32n 입니다.

  표준
‘.St’ 매크로는, 표준의 단축 명칭을 정식명칭에 치환합니다.

    사용법: .St <단축 명칭> ...

사용 가능한 “단축 명칭/정식명칭” 의 조는 다음과 같습니다:

ANSI/ISO C

-ansiC
    ansiC
-ansiC-89
    ansiC-89
-isoC
    isoC
-isoC-99
    isoC-99

POSIX 파트 1: System API

-iso9945-1-90
    iso9945-1-90
-iso9945-1-96
    iso9945-1-96
-p1003.1
    p1003.1
-p1003.1-88
    p1003.1-88
-p1003.1-90
    p1003.1-90
-p1003.1-96
    p1003.1-96
-p1003.1b-93
    p1003.1b-93
-p1003.1c-95
    p1003.1c-95
-p1003.1g-2000
    p1003.1g-2000
-p1003.1i-95
    p1003.1i-95

POSIX 파트 2: 쉘과 유틸리티

-iso9945-2-93
    iso9945-2-93
-p1003.2
    p1003.2
-p1003.2-92
    p1003.2-92
-p1003.2a-92
    p1003.2a-92

X/Open

-susv2
    susv2
-svid4
    svid4
-xbd5
    xbd5
-xcu5
    xcu5
-xcurses4. 2
    xcurses4. 2
-xns5
    xns5
-xns5. 2
    xns5. 2
-xpg3
    xpg3
-xpg4
    xpg4
-xpg4. 2
    xpg4. 2
-xsh5
    xsh5

그 외

-ieee754
    ieee754
-iso8802-3
    iso8802-3

  변수의 형태
‘.Vt’ 매크로는 형태를 참조할 경우에는 언제라도 사용할 수가 있습니다. SYNOPSIS 섹션에서는 개행이 삽입됩니다 (낡은 스타일의 변수 선언에서는 편리합니다).

    사용법: .Vt <형> ...

.Vt extern char *optarg ;
    extern char *optarg;
.Vt FILE *
    FILE *

  변수
일반적인 변수에의 참조입니다.

    사용법: .Va <변수> ...

.Va count
    count
.Va settimer ,
    settimer,
.Va int *prt ) :
    int *prt):
.Va char s ] ) ) ,
    char s])),

디폴트폭은 12n 입니다.

  메뉴얼 페이지의 크로스 레퍼런스
‘.Xr’ 매크로는 최초의 인수에 메뉴얼 페이지의 명칭을 취합니다. 옵션인 제 2 인수는, 캐릭터 라인 (메뉴얼 섹션을 정의합니다)이면 괄호로 둘러싸집니다.

    사용법: .Xr <메뉴얼 페이지의 명칭> [<섹션>] ...

.Xr mdoc
    mdoc
.Xr mdoc ,
    mdoc,
.Xr mdoc 7
    mdoc(7)
.Xr xinit 1x ;
    xinit(1x);

디폴트폭은 10n 입니다.

일반 텍스트 area

  AT&T 매크로

    사용법: .At [<버젼>] ...

.At AT&T UNIX
.At v6 .
    AT&T UNIX.

<버젼> 에는 다음의 값을 받을 수가 있습니다:

    32v, v1, v2, v3, v4, v5, v6, v7, V, V. 1, V. 2, V. 3, V. 4

  BSD 매크로

    사용법: .Bx {-alpha | -beta | -devel} ...
           .Bx [<버젼> [<릴리스>]] ...

.Bx BSD
.Bx 4.3 .
    4.3BSD.
.Bx -devel
    -develBSD

<버젼> 하지만 캐릭터 라인 ‘BSD’ 의 전에 다합니다. <릴리스> 에는 다음의 값을 받을 수가 있습니다:

    Reno, reno, Tahoe, tahoe, Lite, lite, Lite2, lite2

  NetBSD 매크로

    사용법: .Nx [<버젼>] ...

.Nx NetBSD
.Nx 1.4 .
    NetBSD 1.4.

<버젼> 에 있는 값에 대해서는 전술의 타이틀 매크로 섹션의 ‘.Os’ 리퀘스트의 설명을 참조해 주세요.

  FreeBSD 매크로

    사용법: .Fx [<버젼>] ...

.Fx FreeBSD
.Fx 2.2 .
    FreeBSD 2.2.

<버젼> 에 있는 값에 대해서는 전술의 타이틀 매크로 섹션의 ‘.Os’ 리퀘스트의 설명을 참조해 주세요.

  OpenBSD 매크로

    사용법: .Ox [<버젼>] ...

.Ox 1.0
    OpenBSD 1.0

  BSD/OS 매크로

    사용법: .Bsx [<버젼>] ...

.Bsx 1.0
    BSD/OS 1.0

  UNIX 매크로

    사용법: .Ux ...

.Ux UNIX

  강조 매크로
텍스트는 ‘.Em’ 매크로를 이용해 강조할 수가 있습니다. 통상 강조에 이용되는 폰트는 이탤릭체입니다.

    사용법: .Em <인수> ...

.Em does not
    does not
.Em exceed 1024 .
    exceed 1024.
.Em vide infra ) ) ,
    vide infra)),

디폴트폭은 10n 입니다.

  폰트 모드
‘.Bf’ 폰트 모드는 ‘.Ef’ 매크로로 종료하지 않으면 안됩니다 (후자의 매크로는 인수를 취하지 않습니다). 폰트 모드는 다른 폰트 모드내에 상자로 할 수 있습니다.

‘.Bf’ (은)는 다음의 문법을 갖고 있습니다:

    .Bf <폰트 모드>

<폰트 모드> (은)는 다음의 3 종류 중 언젠가가 아니면 안됩니다.

| -emphasis
    ‘.Em’ 매크로가 텍스트의 블록 전체에 대해서 사용되었을 경우와 같게 됩니다.
| -literal
    ‘.Li’ 매크로가 텍스트의 블록 전체에 대해서 사용되었을 경우와 같게 됩니다.
| -symbolic
    ‘.Sy’ 매크로가 텍스트의 블록 전체에 대해서 사용되었을 경우와 같게 됩니다.

어느 매크로도 호출해 불가능하고, 구문 분석도 되지 않습니다.

  울타리/쿼트마크로
울타리의 개념은 쿼트와 닮은 것입니다. 1 개(살) 이상의 캐릭터 라인이 인용부호나 괄호와 같은 캐릭터의 페어로 둘러싸여 있다 오브젝트를 가리킵니다. 쿼트와 울타리라고 하는 용어는 이 문서를 통해 같은 의미로 사용됩니다. 대부분의 1 행의 울타리 매크로는 쿼트인 것을 암시하기 위해서(때문에), 소문자의 ‘q’ 그리고 종료합니다만, 예외도 몇개인가 있습니다. 각각의 울타리 매크로에 대해, 개시 매크로와 종료 매크로의 페어도 있어, 각각 소문자의 ‘o’ (와)과 ‘c’ 그리고 종료합니다.

쿼트 | 개시 | 종료 | 기능 | 결과 .Aq | .Ao | .Ac | 산괄호에 의한 울타리 | <string> .Bq | .Bo | .Bc | 꺽쇄묶음에 의한 울타리 | [string] .Brq | .Bro | .Brc | 중 괄호에 의한 울타리 | {string} .Dq | .Do | .Dc | 2 겹인용부호 | “string” .Eq | .Eo | .Ec | 울타리 캐릭터 라인 (XX 에 의한다) | XXstringXX .Pq | .Po | .Pc | 괄호에 의한 울타리 | (string) .Ql | | | 쿼트 된 리터럴 | ‘string’ 혹은 string .Qq | .Qo | .Qc | 곧바로 2 겹인용부호 | "string" .Sq | .So | .Sc | 1 겹인용부호 | ‘string’

‘q’ 및 ‘o’ 그리고 끝나는 매크로는 모두 디폴트폭이 12n 입니다.

.Eo, .Ec
    이러한 매크로는 각각 제 1 인수에 둘러싸 초에 사용하는 캐릭터 라인과 둘러싸 마지막에 사용하는 캐릭터 라인을 취합니다.

.Es, .En
    오리지날의 troff 프로그램에서는, 인수의 수가 9 개까지라고 한다 제한이 있었으므로, (Eo, Ec 란) 다른 2 개의 매크로가 실장되고 있습니다. 현재는 비추천이 되어 있습니다. ‘.Es’ (은)는 제 1 인수와 제 2 인수에 왼쪽 울타리 캐릭터 라인 및 오른쪽 울타리 캐릭터 라인을 취합니다. 이 캐릭터 라인은, ‘.En’ 의 인수를 둘러싸는데 사용됩니다. 디폴트폭은, 어느 쪽의 매크로도 12n 입니다.

.Eq 이 매크로의 제 1, 제 2 인수는 각각 둘러싸 초에 사용하는 캐릭터 라인과 둘러싸 마지막에 사용하는 캐릭터 라인이며, 이 캐릭터 라인의 뒤에 둘러싸지는 인수가 계속됩니다.

.Ql 쿼트 된 리터럴 매크로는 troff 모드와 nroff 모드로 다른 거동을 합니다. nroff 그리고 정형되었을 경우, 쿼트 된 리터럴은 항상 쿠트 됩니다. troff 로 정형되었을 경우, 그 요소의 폭이 고정폭캐릭터 3 캐릭터 분의폭보다 작을 때 마셔 쿼트 됩니다. 이것에 의해, 리터럴 (고정폭) 폰트에 폰트를 변경하면(자) 눈에 띄지 않게 되어 버리는 것 같은 짧은 캐릭터 라인이 보다 보기 쉬워집니다.

    디폴트폭은 16n 입니다.

.Pf 프레픽스마크로는 제 1 인수와 제 2 인수의 사이의 화이트 스페이스를 없앱니다:

    .Pf ( Fa name2
        (name2

    디폴트폭은 12n 입니다.

    ‘.Ns’ 매크로 (후술 참조)는 똑같이 사픽스에 일합니다.

.Ap ‘.Ap’ 매크로는 어퍼스트로피를 추가해, 특별한 텍스트 모드로부터 빠집니다. 그리고 ‘.No’ 모드로 계속합니다.

쿼트의 예:

.Aq <>
.Aq Pa ctype.h ) ,
    <ctype.h>),
.Bq []
.Bq Em Greek , French .
    [Greek, French].
.Dq “”
.Dq string abc .
    “string abc”.
.Dq '^[A-Z]'
    “'^[A-Z]'”
.Ql man mdoc
    ‘man mdoc’
.Qq ""
.Qq string ) ,
    "string"),
.Qq string Ns ),
    "string),"
.Sq ‘’
.Sq string
    ‘string’
.Em or Ap ing
    or'ing

울타리 매크로의 상자에 대한 좋은 예에 대해서는, 옵션 매크로 ‘.Op’ (을)를 참조해 주세요. 이 매크로는 위에서 리스트 되고 있는 것 같은 울타리 매크로와 같은 베이스 위에 만들어지고 있습니다. ‘.Xo’ (와)과 ‘.Xc’ 확장 인수 리스트 매크로에 대해서는 다음에 말합니다.

  무조작 혹은 통상 텍스트 매크로
‘.No’ 매크로는, 매크로 명령행에 대해 정형되어 안 된다 파라미터용으로 사용할 수 있습니다. 이 영단어 (매크로가 아니고)를 파라미터로서 정말로 사용하고 싶은 경우는, 이 단어 ‘’ 에 ‘\&’ (을)를 더하도록 주의해 주세요.

    사용법: .No <인수> ...

.No test Ta with Ta tabs
    test | with | tabs

디폴트폭은 12n 입니다.

  공백 없음 매크로
‘.Ns’ 매크로는, 현재의 위치와 매크로의 제 1 파라미터와의 사이에 공백을 삽입하는 것을 억제합니다. 예를 들면, 플래그와 인수의 사이에 공백을 포함하지 않는 낡은 스타일의 인수 리스트를 사용하는 경우에 편리합니다:

    사용법: ... <인수>[<인수>] ...
            .Ns <인수> ...

.Op Fl I Ns Ar directory
    [-Idirectory]

주: ‘.Ns’ 매크로는 다른 매크로명이 계속되지 않으면, 스페이스를 제거한 뒤에 ‘.No’ 매크로를 항상 기동합니다. 리퀘스트로서 사용되는 경우 (즉, ‘사용법’ 의 행에서의 2 번째의 형식입니다), ‘.Ns’ 매크로는 ‘.No’ (와)과 동일합니다.

  섹션의 크로스 레퍼런스
‘.Sx’ 매크로는 동일 문서내에서의 섹션의 헤더에의 참조를 지정합니다.

    사용법: .Sx <섹션의 참조> ...

.Sx FILES
    FILES

디폴트폭은 16n 입니다.

  기호
기호체 강조 매크로는, 기호의 의미에서도 전통적인 영어의 사용법에 대해도 통상은 볼드체 매크로가 되고 있습니다.

    사용법: .Sy <기호> ...

.Sy Important Notice
    Important Notice

디폴트폭은 6n 입니다.

  수학 기호
수학 기호나 거기에 닮은 것에 대해서는, 이 매크로를 사용해 주세요.

    사용법: .Ms <수학 기호> ...

.Ms sigma
    sigma

디폴트폭은 6n 입니다.

  참고 문헌과 인용
다음의 매크로는 다소나마 참고 문헌을 취급할 수 있도록(듯이)와 의도한 것입니다. 이러한 매크로는, 겨우 refer(1) 스타일의 참고 문헌의 부분집합을 수동으로 작성하기 쉽게 하는 정도입니다.

.Rs 참고 문헌의 개시 (인수는 취하지 않습니다). SEE ALSO 섹션에서는 개행을 삽입해, 참고 문헌의 종료 매크로가 읽힐 때까지 참고 문헌의 정보를 수집합니다.
.Re 참고 문헌의 종료 (인수는 취하지 않습니다). 참고 문헌이 표시됩니다.
. %A
    참고 문헌의 저자명. 1 회의 호출에 대해, 작자명을 하나 지정합니다.
. %B
    서적의 타이틀.
. %C
    시 / 장소 ( 아직 실장되고 있지 않습니다).
. %D
    일자.
. %I
    발행자/출판사명.
. %J
    정기간행물의 명칭.
. %N
    발행 번호.
. %O
    추가 정보.
. %P
    페이지 번호.
. %Q
    조직 내부, 혹은 외부의 저자.
. %R
    보고서의 명칭.
. %T
    기사의 타이틀.
. %V
    권수.

‘%’ 그리고 시작되는 매크로는 호출해 불가능합니다만, 통상의 방법으로 복수의 인수를 취할 수가 있습니다. 파라미터로서는 ‘.Tn’ 매크로만 취급합니다. 그 외의 매크로를 사용하면(자) 기묘한 출력을 얻을 수 있어 버립니다. ‘. %B’ 및 ‘. %T’ (을)를 ‘.Rs/.Re’ 환경의 외측에서는 사용할 수가 있습니다.

사용예:

    .Rs
    . %A "Matthew Bar"
    . %A "John Foo"
    . %T "Implementation Notes on foobar(1)"
    . %R "Technical Report ABC-DE-12-345"
    . %Q "Drofnats College, Nowhere"
    . %D "April 1991"
    .Re

출력 결과

Matthew Bar, John Foo, Implementation Notes on foobar(1), Technical Report ABC-DE-12-345, Drofnats College, Nowhere, April 1991.

  상표명 (두자어와 타입명)
상표명 매크로는, 인수를 보다 작은 폰트로 출력합니다. 의도되는 사용법은, 대문자의 두자어용으로 작은 대문자 폰트를 모조해 만드는 것입니다.

    사용법: .Tn <심볼> ...

.Tn DEC
    DEC
.Tn ASCII
    ASCII

디폴트폭은 10n 입니다.

  확장 인수
.Xo (와)과 .Xc 매크로에 의해, ‘.It’ 매크로 (후술)에 대해 매크로 경계에서의 인수 리스트를 확장할 수가 있습니다. .Xo (와)과 .Xc 매크로는 울타리를 열거나 닫거나 하는 다른 모든 매크로에 대해 똑같이 실장되고 있다 (물론 캐릭터는 삽입하지 않습니다) 그렇다고 하는 것에 주의해 주세요. 즉, 다음의 예도 이러한 매크로에는 들어맞읍니다.

다음은, 스페이싱을 오프로 하기 위해서(때문에) 공백 모드 매크로를 사용했다 ‘.Xo’ 의 사용예입니다.

    .Sm off
    .It Xo Sy I Ar operation
    .No \en Ar count No \en
    .Xc
    .Sm on

이것은 이하와 같은 결과가 됩니다.

Ioperation
    \ncount\n

예를 또 하나:

    .Sm off
    .It Cm S No / Ar old_pattern Xo
    .No / Ar new_pattern
    .No / Op Cm g
    .Xc
    .Sm on

이것은 이하와 같은 결과가 됩니다.

S/old_pattern
    /new_pattern /[g]

울타리 매크로를 사용했다 ‘.Xo’ 외 예: 변수의 값을 테스트해 주세요.

    .It Xo
    .Ic .ifndef
    .Oo \&!  Oc Ns Ar variable Oo
    .Ar operator variable ...
    .Oc Xc

결과는 이하와 같습니다.

    .ifndef [!]variable [ operator variable ...]

페이지 구조 area

  섹션 헤더
다음의 ‘.Sh’ 섹션 헤더 매크로는, 모든 메뉴얼 페이지로 필수의 것입니다. 나머지의 섹션 헤더는 메뉴얼 페이지의 저자의 재량에 대해, 추천 되고 있는 것입니다. ‘.Sh’ 매크로는 구문 분석 됩니다만, 일반적으로는 호출해 불가능합니다. ‘.Sh’ (을)를 호출할 때 만은, 이 매크로는 인수로서 사용할 수가 있습니다. 이 경우, ‘.Sh’ 용무의 디폴트 폰트를 재차 유효하게 합니다.

디폴트폭은 8n 입니다.

.Sh NAME
    ‘.Sh NAME’ 매크로는 필수입니다. 이것이 지정되어 있지 않으면 헤더와 footer, 거기에 디폴트의 페이지 레이아웃이 설정되지 않고, 결과는 꽤 바람직하지 않은 것에 되겠지요. NAME 섹션은 최저 3 개의 항목으로부터 됩니다. 최초의 것은 명칭 매크로 ‘.Nm’ (이어)여, 메뉴얼 페이지의 Subject가 됩니다. 2 번째의 것은 명칭 설명 매크로 ‘.Nd’ (이어)여, Subject명을 3 개째의 항목, 즉 그 명칭의 설명과 분리합니다. 설명에 할당할 수 있는 스페이스는 작은 것이므로, 가능한 한 간결해 알기 쉬운 것으로 않으면 안됩니다.

    ‘.Nd’ (은)는 모든 인수의 머리에 ‘-’, (을)를 인자합니다.

.Sh LIBRARY
    이 섹션은, 섹션 2 및 3 의 함수 호출의 위해(때문에) 있습니다. 이 섹션에는, ‘.Lb’ 매크로 호출 1 개(살)만이 포함되어 있을 필요가 있습니다. 프로그램 라이브러리명 (을)를 참조해 주세요.

.Sh SYNOPSIS
    SYNOPSIS 섹션은 그 메뉴얼 페이지의 Subject가 되고 있는 항목의 전형적인 사용법을 설명합니다. ‘.Nm’, ‘.Cd’, 혹은 ‘.Fn’ 입니다 (그 밖에 ‘.Fo’, ‘.Fc’, ‘.Fd’, ‘.Ft’ 의 매크로도 필요한 경우가 있습니다). 함수명 매크로 ‘.Fn’ (은)는 섹션 2 로 3 의 메뉴얼 페이지에 대해 필수의 것으로, 명령와 일반 명칭 매크로 ‘.Nm’ (은)는 섹션 1, 5, 6, 7, 8 으로 필수의 항목입니다. 섹션 4 의 메뉴얼에서는 ‘.Nm’ 인가 ‘.Fd’ , 혹은 설정 디바이스 사용법매크로 ‘.Cd’ 하지만 필요합니다. 그 외의 몇개의 매크로가 다음에 나타내는 것 같은 서식행을 생성하기 위해서 필요한 일이 있습니다:

    cat [-benstuv] [-] file ...

    다음의 매크로가 사용되고 있습니다:

        .Nm cat
        .Op Fl benstuv
        .Op Fl
        .Ar

.Sh DESCRIPTION
    대부분의 경우, DESCRIPTION 섹션에서의 최초의 텍스트는 그 명령, 함수 혹은 파일에 대한 짧은 단락으로, 옵션의 구문 리스트와 각각의 설명이 거기에 계속됩니다. 그러한 리스트를 작성하려면 ‘.Bl’ (리스트 개시 매크로), ‘.It’ (리스트 항목 매크로), ‘.El’ (리스트 종료 매크로) (을)를 사용합니다 (후술의 리스트와 컬럼 섹션을 참조).

.Sh IMPLEMENTATION NOTES
    특정의 실장에 관한 정보는 여기에 둘 필요가 있습니다.

.Sh RETURN VALUES
    섹션 2, 3, 9 의 함수의 반환값은 여기에 올 필요가 있습니다. ‘.Rv’ (을)를 사용해, 섹션 2 및 3 의 프로그램 라이브러리 함수의 RETURN VALUES 섹션을 생성할 수가 있습니다. 반환값 의 항을 참조해 주세요.

다음의 ‘.Sh’ 섹션 헤더는 메뉴얼 페이지의 바람직한 레이아웃의 일부이며, 일관성을 유지하기 위해서(때문에) 적절히 사용되지 않으면 안됩니다. 이것들은 사용되는 차례로 리스트 되고 있습니다.

.Sh ENVIRONMENT
    ENVIRONMENT 섹션에서는 관련하는 환경 변수 및 그러한 거절하지 않든지나 사용 방법에 관한 단서를 분명히 한다 필요가 있습니다.

.Sh FILES
    메뉴얼 페이지의 Subject에 의해 사용될까 생성되는 파일로, FILES 섹션중에서 매크로 ‘.Pa’ 에 의해 리스트 할 필요가 있습니다.

.Sh EXAMPLES
    사용예를 생성하려면 몇개인가 방법이 있습니다. 자세한 것은 후술의 사용예 섹션을 참조해 주세요.

.Sh DIAGNOSTICS
    명령로부터의 진단 메세지는 이 섹션에 둘 필요가 있습니다.

.Sh COMPATIBILITY
    알려져 있는 호환성의 문제 (예를 들면, 비추천이 된 옵션이나 파라미터)를 여기에 리스트 할 필요가 있습니다.

.Sh ERRORS
    특정의 에러 핸들링, 특히 프로그램 라이브러리 함수 (메뉴얼 페이지의 섹션 2, 3, 9)에서의 에러 핸들링은 여기서 설명할 필요가 있습니다. ‘.Er’ 매크로는 에러 (errno)를 지정하는데 사용됩니다.

.Sh SEE ALSO
    SEE ALSO 섹션에는, 그 메뉴얼 페이지의 소재에 관한 자료에의 참조와 다른 관련하는 메뉴얼 페이지로의 크로스 레퍼런스가 기재됩니다. 크로스 레퍼런스는 ‘.Xr’ 매크로에 의해 지정됩니다. 현재, refer(1) 스타일의 레퍼런스에는 적합하고 있지 않습니다.

    크로스 레퍼런스는 섹션 번호순서, 동일 섹션에 있는 것은 알파벳순서에 늘어놓아 칸마로 단락짓는 것을 추천 합니다. 이하에 예를 나타냅니다:

    ls(1), ps(1), group(5), passwd(5)

.Sh STANDARDS
    명령나 프로그램 라이브러리 함수나 파일이, p1003.2 (이)나 ansiC (와)과 같은 특정의 실장에 의하는 것이면, 여기서 기술합니다. 만약 명령이 어느 표준에도 기초를 두지 않으면, 그 역사는 HISTORY 의 섹션으로 설명되지 않으면 안됩니다.

.Sh HISTORY
    특정의 표준에 근거하지 않은 명령은, 이 섹션으로 그 역사의 개요를 설명할 필요가 있습니다.

.Sh AUTHORS
    크레디트는 여기에 둘 필요가 있습니다. 인물명을 지정하려면 ‘.An’ 매크로를 사용할 필요가 있습니다.

.Sh BUGS
    명확한 문제는 여기서 기술합니다.

유저 지정의 ‘.Sh’ 섹션을 추가할 수가 있습니다. 예를 들면, 이 섹션은 이하와 같이 설정되어 있습니다.

    .Sh "페이지 구조 area"

  서브 섹션 헤더
서브 섹션 헤더는 섹션 헤더와 완전히 같은 문법을 하고 있습니다. ‘.Ss’ (은)는 구문 분석 됩니다만, 일반적으로 호출해 불가능합니다. 이 매크로는, ‘.Ss’ 의 호출시에게만 인수로서 사용할 수 있습니다. 이 때, ‘.Ss’ 의 디폴트 폰트가 재차 유효하게 됩니다.

디폴트폭은 8n 입니다.

  단락과 행 스페이스

.Pp ‘.Pp’ 단락 명령은 필요한 경우에 행 스페이스를 지정하기 위해서 사용됩니다. 이 매크로는 ‘.Sh’ 매크로나 ‘.Ss’ 매크로의 뒤, 및 ‘.Bl’ 매크로나 ‘.Bd’ 매크로의 전에서는 필요 없습니다 (어느 매크로도 -compact 플래그가 지정되어 있지 않으면 수직 방향의 거리를 선언합니다).

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다. 그리고 인수를 취하지 않습니다. 별명은 ‘.Lp’ 입니다.

  키프
현재 실장되고 있는 키프는 단어에 대하는 것 뿐입니다. 매크로는 ‘.Bk’ (키프 개시) (와)과 ‘.Ek’ (키프 종료)입니다. 현재 ‘.Bk’ 하지만 받아들이는 옵션은 -words 만으로 (옵션을 아무것도 주지 않으면 이것이 디폴트이기도 합니다) 옵션의 도중에 개행이 들어가지 않게 하는데 편리합니다. make 명령행의 인수를 생성하는 예 ( 이 이름에는 무엇이 의 항을 참조)에 두어, 키프는 nroff 하지만 플래그와 인수를 다른 행으로 나누지 않게 사용되고 있습니다.

어느 매크로도 호출해 불가능하고, 구문 분석도 되지 않습니다.

키프 매크로에 대해서는 좀 더 작업을 할 필요가 있습니다. 특히 -line 옵션은 추가할 필요가 있겠지요.

  예시와 디스플레이
디스플레이에는 7 개의 타입이 있습니다.

. D1
    (D-한입니다) 인덴트 된 텍스트를 1 행 표시합니다. 이 매크로는 구문 분석 됩니다만, 호출해 불가능합니다.

        -ldghfstru

    이것은 다음의 지정으로 생성된 것입니다:. D1 Fl ldghfstru

.Dl (D-엘입니다) 인덴트 되었다 리터럴 텍스트를 1 행 표시합니다. ‘.Dl’ 매크로의 예는 본파일중에 걸쳐서 사용되고 있습니다. 이것에 의해 1 행의 텍스트의 인덴트 (표시)가 가능하게 됩니다. 디폴트 폰트는 고정폭 (리터럴)으로 설정됩니다. ‘.Dl’ (은)는 구문 분석 됩니다만, 호출해 불가능합니다.

        % ls -ldg /usr/local/bin

    이것은, 다음의 지정으로 생성된 것입니다: .Dl % ls -ldg /usr/local/bin

.Bd 디스플레이 개시. ‘.Bd’ 디스플레이는 ‘.Ed’ 매크로로 종료하지 않으면 안됩니다. 이것은, 다음의 서식을 취합니다:

    .Bd {-literal | -filled | -unfilled | -ragged | -centered} [-offset <캐릭터 라인>] [-file <파일명>] [-compact]

    -ragged
        행 채우고 됩니다만, 오른쪽 마진은 조정하지 않습니다 (왼쪽 마진만입니다).
    -centered
        현재의 왼쪽 마진과 오른쪽 마진간의 중앙선입니다. 선 각각이 centering가 되기로 주의해 주세요.
    -unfilled
        행 채우고 하지 않습니다. 텍스트의 블록이 입력된 채로 상태로 표시합니다. 개행도 유저가 지정한 대로 사용됩니다. 이 때문에, 무슨 경고 메세지도 보내지 않고 너무 긴 행을 생성할 가능성이 있습니다.
    -filled
        행 채우고 된 블록을 표시합니다. 텍스트 블록이 정형됩니다 (즉, 텍스트는 좌우 어느 쪽 측에도 가지런히 할 수 있습니다).
    -literal
        리터럴 폰트 (통상 고정폭)로 블록을 표시합니다. 원시 코드나, 단순하게 탭 혹은 공백에서 정돈되었다 텍스트에는 편리합니다.
    -file <파일명>
        -file 플래그에 계속된 이름을 가진 파일이 읽혀 지정된 디스플레이 타입으로 ‘.Bd’ (와)과 ‘.Ed’ 매크로로 둘러싸인 데이터보다 전에 표시됩니다. 파일중의 troff/-mdoc 명령은 어떤 것이라도 처리됩니다.
    -offset <캐릭터 라인>
        -offset 하지만 이하의 캐릭터 라인의 언젠가와 함께 지정되어 있으면(자), 그 캐릭터 라인은 다음의 텍스트의 블록의 인덴트의 레벨을 나타내는 것으로서 해석됩니다.

        left
            블록을 현재의 왼쪽 마진에 가지런히 합니다. 이것은 ‘.Bd’ 의 디폴트의 모드입니다.
        center
            블록을 centering로 합니다. 유감스럽지만 현시점에서는, 단지 블록의 좌측을 가상적인 중앙 마진에 가지런히 할 뿐입니다.
        indent
            디폴트의 인덴트치 혹은 탭의 분만큼 인덴트 합니다. 디폴트의 인덴트치는 ‘. D1’ 및 ‘.Dl’ 매크로에서도 사용되고 있기 때문에, 이 2 개의 디스플레이와 행이 갖추어지는 것이 프로텍션되고 있습니다. 인덴트치는 통상 6n 즉 약 2/3 인치 (고정폭캐릭터 6 개(살)분 )입니다.
        indent-two
            디폴트의 인덴트치의 2 배분 인덴트 합니다.
        right
            이것은 블록을 페이지의 우단으로부터 약 2 인치 떼어 놓아 왼쪽 가지런히 합니다. 이 매크로는 분명하게 동작할 필요가 있습니다만, troff 그럼 전혀 분명하게 동작해 주고 있지 않습니다.

        <캐릭터 라인> 하지만 그 이외로 올바른 수치 표현을 하고 있는 경우 (‘u’ 이외의 스케일 지시아이를 동반한다), 인덴트용으로 그 값을 사용합니다. 스케일 지시자 속에서 가장 도움이 되는 것은 ‘m’ 및 ‘n’ 입니다. 이것들은 이른바 (와)과 En square (을)를 지정합니다. 이것들은 각각, 현재의 폰트에서의 캐릭터 ‘m’ 및 캐릭터 ‘n’ 의 폭과 거의 같습니다 ( nroff 의 출력에 대해서는, 어느 쪽의 스케일 지시자라도 같은 값을 얻을 수 있습니다 ). <캐릭터 라인> 하지만 수치 표현을 하고 있지 않는 경우, 캐릭터 라인은 -mdoc 매크로명인지 어떤지 검사되어 이 매크로에 관련한다 디폴트의 오프셋(offset)치가 사용됩니다. 최종적으로 모든 테스트가 실패했을 경우 the width of <캐릭터 라인> 의 폭 (고정폭폰트에서의 타입 세트)(이)가 오프셋(offset)라고 보여집니다.
    -compact
        디스플레이를 개시할 경우에 수직 방향의 공백을 삽입하지 않게 합니다.

.Ed 디스플레이의 종료 (인수는 취하지 않습니다).

  리스트와 컬럼
리스트 개시 매크로 ‘.Bl’ 그리고 개시할 수 있는 리스트에는 몇 종류인가 있습니다. 리스트중의 항목은 항목 매크로 ‘.It’ 그리고 지정되어 각 리스트는 ‘.El’ 매크로로 종료하지 않으면 안됩니다. 리스트는 리스트 자신이나 디스플레이 중(안)에서 상자로 할 수가 있습니다. 리스트중에서 컬럼을 사용하거나 컬럼중에서 리스트를 사용하거나 하는 것에 붙어 검증되고 있지 않습니다.

게다가 태그폭, 리스트의 오프셋(offset), 컴팩트의 정도 (항목간의 공백행이 용서되고 있는지 어떤지)(와)과 같은 리스트의 속성을 몇개인가 지정할 수가 있습니다. 본문서의 대부분은 태그 (-tag) 스타일 리스트로 정형되고 있습니다.

이 매크로는 다음의 문법 규칙을 가지고 있습니다:

.Bl {-hang | -ohang | -tag | -diag | -inset} [-width <캐릭터 라인>] [-offset <캐릭터 라인>] [-compact]
.Bl -column [-offset <캐릭터 라인>] <캐릭터 라인 1> <캐릭터 라인 2> ...
.Bl {-item | -enum [-nested] | -bullet | -hyphen | -dash} [-offset <캐릭터 라인>] [-compact]

다음에, 이 리스트 타입의 상세한 해설을 실시합니다.

-bullet
    뷰렛 리스트입니다.

        .Bl -bullet -offset indent -compact
        .It
        1 번째의 뷰렛은 여기에 옵니다.
        .It
        2 번째의 뷰렛은 여기에 옵니다.
        .El

    생성 결과는 다음과 같습니다:

    •   1 번째의 뷰렛은 여기에 옵니다.
    •   2 번째의 뷰렛은 여기에 옵니다.

-dash (또는 -hyphen)
    데쉬 캐릭터에 의한 리스트입니다.

        .Bl -dash -offset indent -compact
        .It
        1 번째의 데쉬는 여기에 옵니다.
        .It
        2 번째의 데쉬는 여기에 옵니다.
        .El

    생성 결과는 다음과 같습니다:

    -   1 번째의 데쉬는 여기에 옵니다.
    -   2 번째의 데쉬는 여기에 옵니다.

-enum
    조목별로 나누어 쓴 글 리스트입니다.

        .Bl -enum -offset indent -compact
        .It
        1 번째의 항목은 여기에 옵니다.
        .It
        2 번째의 항목은 여기에 옵니다.
        .El

    생성 결과는 다음과 같습니다:

    1.  1 번째의 항목은 여기에 옵니다.
    2.  2 번째의 항목은 여기에 옵니다.

    조목별로 나누어 쓴 글 리스트를 상자로 하고 싶은 경우, -nested 플래그를 사용해 주세요 ( 제 2 레벨의 리스트가 개시됩니다):

        .Bl -enum -offset indent -compact
        .It
        1 번째의 항목은 여기에 옵니다.
        .Bl -enum -nested -compact
        .It
        2 번째의 항목은 여기에 옵니다.
        .It
        3 번째의 항목은 여기에 옵니다.
        .It
        .El
        .It
        4 번째의 항목은 여기에 옵니다.
        .El

    생성 결과는 다음과 같습니다:

    1.  1 번째의 항목은 여기에 옵니다.
        1.  2 번째의 항목은 여기에 옵니다.
        2.  3 번째의 항목은 여기에 옵니다.
    2.  4 번째의 항목은 여기에 옵니다.

-item
    리스트의 표를 붙이지 않는다 -item 타입의 리스트입니다.

        .Bl -item -offset indent
        .It
        1 번째의 항목은 여기에 옵니다.
        1 번째의 항목은 여기에 옵니다.
        1 번째의 항목은 여기에 옵니다.
        .It
        2 번째의 항목은 여기에 옵니다.
        2 번째의 항목은 여기에 옵니다.
        2 번째의 항목은 여기에 옵니다.
        .El

    생성 결과는 다음과 같습니다:

    1 번째의 항목은 여기에 옵니다. 1 번째의 항목은 여기에 옵니다. 1 번째의 항목은 여기에 옵니다.

    2 번째의 항목은 여기에 옵니다. 2 번째의 항목은 여기에 옵니다. 2 번째의 항목은 여기에 옵니다.

-tag
    태그 다하고 리스트입니다. 태그폭을 지정하려면 -width (을)를 사용해 주세요.

    SL  프로세스가 sleep 하고 있는 시간 (블록 된 초수)
    PAGEIN
        그 프로세스에 의해, 아직 메모리에 로드되어 있지 않은 페이지로의 참조가 일어나는 것으로 생긴 디스크 I/O 의 회수
    UID 수치 표기에 의한 프로세스 소유자의 유저 ID
    PPID
        수치 표기에 의한 parent process의 ID, 프로세스의 우선도 (세치기 불가의 대기 상태 때에는, 정이 아닌 값이 된다)

    원래의 텍스트는 다음과 같습니다:

        .Bl -tag -width "PPID" -compact -offset indent
        .It SL
        프로세스가 sleep 하고 있는 시간 (블록 된 초수)
        .It PAGEIN
        그 프로세스에 의해, 아직 메모리에 로드되어 있지 않은 페이지로의 참조가
        일어나는 것으로 생긴 디스크
        .Tn I/O
        의 회수
        .It UID
        수치 표기에 의한 프로세스 소유자의 유저 ID
        .It PPID
        수치 표기에 의한 parent process의 ID, 프로세스의 우선도
        (세치기 불가의 대기 상태 때에는, 정이 아닌 값이 된다)
        .El

-diag
    진단 리스트는 섹션 4 의 진단 리스트를 생성하는 것으로, 호출해 가능한 매크로가 무시되는 것을 제외해, inset 리스트와 닮아 있습니다. 플래그 -width (은)는, 이 문맥에서는 의미가 없습니다.

    사용예:

        .Bl -diag
        .It 여기서 Sy 를 사용할 수 없습니다.
        이 메세지는 모두 출력됩니다.
        .El

    생성 결과

    여기서 를 사용할 수 없습니다. 이 메세지는 모두 출력됩니다.

-hang
    매달려 태그 다하고 리스트입니다.

    Hanged
        label폭보다 label가 작은 경우에는 매달 수 있었던 label는 태그 다하고 리스트와 같이 보입니다.

    Longer hanged list labels
        label폭보다 긴 매달려 리스트의 label는, 태그 다하고 단락 label와는 달라, 단락에 용해합니다.

    이상의 문장을 생성한, 정형전의 텍스트는 다음과 같습니다:

        .Bl -hang -offset indent
        .It Em Hanged
        label폭보다 label가 작은 경우에는
        매달 수 있었던 label는 태그 다하고 리스트와 같이 보입니다.
        .It Em Longer Hanged list labels
        label폭보다 긴 매달려 리스트의 label는,
        태그 다하고 단락 label와는 달라, 단락에 용해합니다.
        .El

-ohang
    오바항타그 (overhanging tags)를 이용한 리스트는 항목에 대해서 인덴트를 사용하지 않습니다. 태그는 다른 행에 출력됩니다.

    SL
    프로세스가 sleep 하고 있는 시간 (블록 된 초수)

    PAGEIN
    그 프로세스에 의해, 아직 메모리에 로드되어 있지 않은 페이지로의 참조가 일어나는 것으로 생긴 디스크 I/O 의 회수

    UID
    수치 표기에 의한 프로세스 소유자의 유저 ID

    PPID
    수치 표기에 의한 parent process의 ID, 프로세스의 우선도 (세치기 불가의 대기 상태 때에는, 정이 아닌 값이 된다)

    원래의 텍스트는 다음과 같습니다:

        .Bl -ohang -offset indent
        .It Sy SL
        프로세스가 sleep 하고 있는 시간 (블록 된 초수)
        .It Sy PAGEIN
        그 프로세스에 의해, 아직 메모리에 로드되어 있지 않은 페이지로의 참조가
        일어나는 것으로 생긴 디스크
        .Tn I/O
        의 회수
        .It Sy UID
        수치 표기에 의한 프로세스 소유자의 유저 ID
        .It Sy PPID
        수치 표기에 의한 parent process의 ID, 프로세스의 우선도
        (세치기 불가의 대기 상태 때에는, 정이 아닌 값이 된다)
        .El

-inset
    다음은, inset label의 예입니다:

    tag 태그 리스트 (태그 단락이라고도 부릅니다)는 바클리의 메뉴얼로 사용되고 있는 가장 일반적인 종류의 리스트입니다. 다음에 말하도록(듯이), -width 속성을 사용해 주세요.

    diag 진단 리스트는 섹션 4 의 진단 리스트를 생성해, 호출해 가능한 매크로를 무시한다고 하는 점을 제외하면 inset 리스트와 닮아 있습니다.

    hang 매달려 label는 기분의 문제입니다.

    ohang 오바항라벨은 공백에 제한이 있는 경우에는 좋습니다.

    inset inset label는 단락 블록을 제어하는데 편리해, -mdoc 메뉴얼을 다른 포맷으로 변환하는데 유용합니다.

    위의 예를 생성한 소스 텍스트는 이렇게 되고 있습니다:

        .Bl -inset -offset indent
        .It Em tag
        태그 리스트 (태그 단락이라고도 부릅니다)는
        바클리의 메뉴얼로 사용되고 있는 가장 일반적인
        종류의 리스트입니다.
        다음에 말하도록(듯이),
        .Fl width
        속성을 사용해 주세요.
        .It Em diag
        진단 리스트는 섹션 4 의 진단 리스트를 생성해,
        호출해 가능한 매크로를 무시한다고 하는 점을 제외하면
        inset 리스트와 닮아 있습니다.
        .It Em hang
        매달려 label는 기분의 문제입니다.
        .It Em ohang
        오바항라벨은 공백에 제한이 있는 경우에는 좋습니다.
        .It Em inset
        inset label는 단락 블록을 제어하는데 편리해,
        .Nm -mdoc
        메뉴얼을 다른 포맷으로 변환하는데 유용합니다.
        .El

-column
    이 종류의 리스트는 복수 컬럼을 생성합니다. 컬럼의 수 및 각 컬럼의 폭은 -column 리스트에의 인수, <string1>, <string2> 등에 의해 결정됩니다. <stringN> 하지만 ‘.’ (닷)(으)로 개시해 직후에 유효한 -mdoc 매크로명이 계속되는 경우, <stringN> (을)를 해석해 결과의 폭을 사용합니다. 그렇지 않은 경우, <stringN> (고정폭폰트에서의 타입 세트)(은)는 N 번째의 자리수의 폭이 됩니다.

    ‘.It’ 인수는 각각 구문 분석 되고 행을 생성합니다. 행중의 각 렬은 탭이나 ‘.Ta’ 매크로로 나눌 수 있었던 인수입니다.

    다음의 겉(표),
    캐릭터 라인 | nroff | troff
    <= | <= |
    >= | >= |

    (은)는 다음과 같이 해 생성되고 있습니다:

        .Bl -column -offset indent ".Sy 캐릭터 라인" ".Sy nroff" ".Sy troff"
        .It Sy 캐릭터 라인 Ta Sy nroff Ta Sy troff
        .It Li <= Ta <= Ta \*(<=
        .It Li >= Ta >= Ta \*(>=
        .El

그 외의 키워드:

-width <캐릭터 라인>
    <캐릭터 라인> 하지만 ‘.’ (닷)(으)로 개시해 직후에 유효한 -mdoc 매크로명이 계속되는 경우, <캐릭터 라인> (을)를 해석해, 그 결과의 폭을 사용합니다. 본문서의 거의 모든 리스트는 이 옵션을 사용하고 있습니다.

    사용예:

        .Bl -tag -width ".Fl test Ao Ar 캐릭터 라인 Ac"
        .It Fl test Ao Ar 캐릭터 라인 Ac
        이것은,
        .Fl width
        플래그를 태그 리스트와 함께 사용하면(자) 어떻게
        일할까를 보기 위한 좀 더 긴 문장입니다.
        .El

    생성 결과:

    -test <캐릭터 라인>
        이것은, -width 플래그를 태그 리스트와 함께 사용하면(자) 어떻게 일할까를 보기 위한 좀 더 긴 문장입니다.

    <캐릭터 라인> 하지만 해석되기 전에 현재의 -mdoc 상태가 보존되는 것에 주의해 주세요. 캐릭터 라인이 해석된 다음에 모든 변수가 재차 복원됩니다. 그러나, 박스 (울타리에 사용된다)는 GNU troff(1) 그럼 보존되지 않습니다. 결과적으로는, 추악한 에러를 막기 위해서(때문에)는 인수는 항상 평형을 취할 수 있어 없으면 안됩니다. 예를 들면, 정말로 열어 산괄호만이 필요한 경우에는 ‘.Ao Ar 캐릭터 라인’ (이)라고 써서는 안되어, 대신에 ‘.Ao Ar 캐릭터 라인 Xc’ (이)라고 쓰지 않으면 안됩니다.

    그렇지 않은 경우, <캐릭터 라인> 하지만 정당한 수치 표현인 경우 ‘(u’ 이외의 스케일 지시아이를 동반한다), 인덴트용으로 그 값을 사용합니다. 가장 유용한 스케일 지시자는 ‘m’ (와)과 ‘n’ 입니다. 이것들은 이른바 및 En square (을)를 지정합니다. 이것들은 각각, 현재의 폰트에서의 캐릭터 ‘m’ 및 캐릭터 ‘n’ 의 폭과 거의 같습니다 (nroff 의 출력에 대해서는, 어느 쪽의 스케일 지시자라도 같은 값을 얻을 수 있습니다). <캐릭터 라인> 하지만 수치 표현을 하고 있지 않는 경우, 캐릭터 라인은 -mdoc 매크로명인지 어떤지 검사되어 이 매크로에 관련한다 디폴트의 오프셋(offset)치가 사용됩니다. 최종적으로 모든 테스트가 실패했을 경우 <캐릭터 라인> 의 폭 (고정폭폰트에서의 타입 세트)(이)가 오프셋(offset)라고 보여집니다.

    태그 리스트 타입용으로폭이 지정되어 있지 않은 경우, ‘.It’ 하지만 기동될 때에 적절한 폭을 결정하려고 시도합니다. ‘.It’ 의 제 1 인수가 호출해 가능한 매크로인 경우, 그 매크로의 디폴트폭이 사용됩니다. 그렇지 않으면, ‘.No’ 의 디폴트폭이 사용됩니다.

-offset <캐릭터 라인>
    <캐릭터 라인> 하지만 indent 인 경우, 디폴트의 인덴트치 (통상 6n 로 설정되어 있어 ‘.Dl’ 또는 ‘.Bd’ 그리고 사용되는 값과 닮아 있습니다) 하지만 사용됩니다. <캐릭터 라인> 하지만 정당한 수치 표현인 경우 (‘u’ 이외의 스케일 지시아이를 동반한다 ), 그 값을 인덴트에 사용합니다. 가장 유용한 스케일 지시자는 ‘m’ (와)과 ‘n’ (이어)여, 이것들은 이른바 및 En square 입니다. 이것들은 각각, 각각 현재의 폰트에서의 ‘m’ (와)과 ‘n’ 의 폭과 거의 같습니다 (nroff 의 출력에 대해서는, 어느 쪽의 스케일 지시자도 같은 값을 받습니다). <캐릭터 라인> 하지만 수치 표현이 아닌 경우, 그 캐릭터 라인이 -mdoc 의 매크로명인지 어떤지 검사되어 이 매크로에 관련한다 디폴트의 오프셋(offset)치가 사용됩니다. 최종적으로 모든 테스트가 실패했을 경우, <캐릭터 라인> 의 폭 (고정폭폰트에서의 타입 세트)이 오프셋(offset)로서 빼앗깁니다.

-compact
    리스트의 전 및 리스트 항목간에 수직 방향의 공백을 삽입하지 않게 합니다.

그 외의 매크로
여기에는, 지금까지의 섹션에는 잘 들어맞지 않았다 나머지의 매크로의 리스트가 있습니다. 다음의 매크로에 대해서는 진짜의 사용예를 찾아낼 수 없었습니다. 그것은 ‘.Me’ (와)과 ‘.Ot’ 입니다. 이 2 개(살)에 대해서도 완벽을 기하기 위해서(때문에) 여기에 문서화는 하고 있습니다. 만약 이 2 개의 매크로의 적절한 사용법을 아시는 바이면 bug-groff@gnu.org 까지 메일을 보내 주세요 (예 돌출하고).

.Bt 하

    (을)를 표시합니다.

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다. 또 인수도 취하지 않습니다.

.Fr

        사용법: .Fr <함수의 반환값> ...

    이 매크로는 사용하지 말아 주세요. 이 매크로는 반환값 (통상은 숫자 1 개)의 직전에서의 개행을 허락해 버립니다. 인쇄시의 행동으로서는 나쁜 일입니다. 직전의 단어와 반환값을 결합시키려면 ‘\~’ (을)를 사용해 주세요.

.Hf (헤더) 파일을 그대로 포함하려면 이 매크로를 사용해 주세요. 이 매크로는, 최초로 ‘File:’ (와)과 파일명을 표시해, 그 후로 <파일> 의 내용을 표시합니다.

        사용법: .Hf <파일>

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다.

.Lk 장래 쓰여질 예정입니다.

.Me 정확한 사용 방법은 모릅니다. -mdoc 원시 파일중의 기술에서는 “메뉴 엔트리” 되고 있습니다.

    디폴트폭은 6n 입니다.

.Mt 장래 쓰여질 예정입니다.

.Ot 정확한 사용 방법은 모릅니다. -mdoc 원시 파일중의 기술에서는 “낡은 함수 타입 (fortran)” 되고 있습니다.

.Sm 공백 모드를 유효하게 (타글) 합니다.

        사용법: .Sm [on | off] ...

    공백 모드가 off 의 경우, 매크로 인수의 사이에 공백은 삽입되지 않습니다. 인수없이 불렸을 경우 (혹은 다음의 인수가 ‘on’ 그렇지만 ‘off’ 도 아닌 경우) ‘.Sm’ 매크로는 공백 모드에 들어갑니다.

.Ud 매크로는

    (을)를 표시합니다.

    이 매크로는 호출해 불가능하고, 구문 분석도 되지 않습니다. 또 인수도 취하지 않습니다.

정의가 끝난 캐릭터 라인
다음의 캐릭터 라인이 정의가 끝난 상태입니다:

캐릭터 라인 | nroff | troff | 의미
<= | <= | | 이하
>= | >= | | 이상
Rq | '' | | 우측의 더블 쿼트
Lq | `` | | 좌측의 더블 쿼트
ua | ^ | | 오름새 화살표
aa | ' | | 아큐트아크센트
ga | ` | | 그레이브아크센트
q | " | | 곧바로더블 쿼트
Pi | pi | | 희랍어의 파이
Ne |! = | | 부등호
Le | <= | | 이하
Ge | >= | | 이상
Lt | < | | 소든지
Gt | > | | 대든지
Pm | +- | | 플러스마이너스
If | infinity | | 무한
Na | | | 비수치
Ba | | | 수직선

컬럼의 이름 nroff (와)과 troff (은)는 조금 오해를 부르는 것입니다. nroff 하 ASCII 캐릭터를 표시합니다만, troff 그럼 이용 가능하지만 쳐 제일 좋은 그리후 형식을 표시합니다. 예를 들면, Unicode 를 사용 가능하게 했다 TTY 디바이스는 모든 캐릭터 라인에 대해서 적절한 그리후 표현을 가지고 있습니다만, 그에 대한 Latin1 에 대해서 기능을 강화했다 TTY 디바이스는 플러스마이너스 기호 밖에 가지고 있지 않습니다.

캐릭터를 2 개 포함한 캐릭터 라인명은 ‘\*(xx’ (으)로서 표기할 수 있습니다. 캐릭터를 1 캐릭터만 포함한 캐릭터 라인명은 ‘\*x’ (와)과 표기할 수 있습니다. 어떠한 길이의 캐릭터 라인명에 대해서도, 일반적인 문법은 ‘\*[xxx]’ 됩니다 (이것은 GNU troff(1) 확장입니다).

진단
이전의 버젼의 -mdoc 패키지에서는 이용 가능했던 디버그용 매크로 ‘.Db’ (은)는 제거되었습니다. 왜냐하면, GNU troff(1) 그럼 파라미터를 체크하는데 좀 더 좋은 퍼실리티를 제공하고 있기 때문입니다. 게다가 이 매크로 패키지에는 에러나 경고 메세지가 다수 추가되고 있어보다 로바스트로 요설인 물건이 되어 있습니다.

유일 남은 디버그용 매크로는 ‘.Rd’ (이어)여, 이것은 모든 글로벌 레지스터 및 캐릭터 라인의 레지스터 덤프를 출력하는 것입니다. 통상의 유저가 사용할 필요는 결코 없을 것입니다.

GROFF, TROFF, 및 NROFF 를 사용한 정형
디폴트에서는, 이 패키지에서는 ‘latin1’ (이)나 ‘unicode’ (와)과 같은 TTY 디바이스로 표시하는 경우에는 개페이지나 헤더, footer는 금지되고 있어 메뉴얼을 온라인으로 효율 좋게 볼 수가 있게 되어 있습니다. 이 행동은, groff (을)를 부르고 있을 때 레지스터 ‘cR’ 에 0 을 지정하는 것으로 변경할 수가 있습니다 (예를 들면, TTY 출력의 하드 카피를 작성하고 싶을 때 등).

    groff -Tlatin1 -rcR=0 -mdoc foo.man > foo.txt

양면 인쇄용에는, 레지스터 ‘D’ (을)를 1 으로 설정해 주세요:

    groff -Tps -rD1 -mdoc foo.man > foo.ps

문서의 font size를 11pt 나 12pt 로 변경하고 싶다 경우는, 레지스터 ‘S’ (을)를 거기에 맞추어 설정해 주세요:

    groff -Tdvi -rS11 -mdoc foo.man > foo.dvi

레지스터 ‘S’ 하 TTY 디바이스에 대해서는 무시됩니다.

관련 파일
doc.tmac
    주된 메뉴얼용 매크로 패키지입니다.
mdoc.tmac
    doc.tmac (을)를 부르는 나팔 파일입니다.
mdoc/doc-common
    공통되는 캐릭터 라인, 정의, 및 인쇄 출력에 관련하는 항목입니다.
mdoc/doc-nroff
    TTY 출력 디바이스용으로 사용되는 정의입니다.
mdoc/doc-ditroff
    그 외 모든 디바이스용으로 사용되는 정의입니다.
mdoc.local
    로컬 머신에서의 추가 항목 및 커스터마이즈 항목입니다.
andoc.tmac
    이 파일은 -mdoc 패키지와 -man 패키지의 어느 쪽을 사용해야할 것인가를 체크합니다.

관련 항목
groff(1), man(1), troff(1), groff_man(7)

버그
섹션 3f 는 헤더 routine에는 추가되고 있지 않습니다.

‘.Nm’ NAME 섹션에 대해서는, 폰트를 변경해야 합니다.

행의 길이가 너무 짧은 경우에 행이 분할되는 것을 막기 위해서(때문에) ‘.Fn’ 하지만 체크를 실시할 필요가 있습니다. 가끔, 마지막 괄호가 분할되는 일이 있어, 행 채우기 모드일 때 이상한 결과가 되는 일이 있습니다.

리스트 매크로 및 디스플레이 매크로는 어떤 키프도 실시하지 않습니다만, 이것은 키프를 실시해야 합니다.