사이드 프로젝트를 위한 매뉴얼 페이지를 만들려고 하는데, 이전에 troff를 사용해 본 적이 없으며, man 매크로 세트와 mdoc 매크로 세트의 차이점이 정확히 무엇인지, 어느 것이 맞는지 알아보려고 합니다. POSIX OS와 다양한 troff 구현 간의 이식성이 향상되었습니다.
나는 mdoc와 plain man이 일부 매크로를 공유하고 BSD(적어도 FreeBSD)는 mdoc 수동 형식을 사용하는 반면 GNU는 plain man 형식을 사용한다는 것을 알았습니다.
그래서 내 질문은 기본적으로 다음과 같습니다.
mdoc는 man 매크로의 상위 집합입니까? 이것은 평범한 사람들의 상속 재산을 사용한다는 의미입니까? mdoc의 groff 맨페이지에는 일반 man 매크로가 mdoc의 전신이라고 명시되어 있지만 mdoc가 man을 대체하는지 여부는 지정하지 않습니다.
BSD와 SYSV 및/또는 GNU의 차이점은 무엇입니까?
groff(가보 troff와 같은) 외에 POSIX 시스템과 troff의 다양한 구현에서 어느 것이 더 이식성이 좋습니까?
답변1
man
매크로 세트와 매크로 세트의 차이점은 무엇입니까mdoc
?
man
장 제목, 단락 및 부제목을 정의하는 간단한 명령만으로 최소화되고 단순합니다. 패키지에는 .B
, .BI
, 와 같은 몇 가지 기본 형식 지정 명령이 포함되어 있습니다.
mdoc
반면에 스위치, 옵션 및 인수 목록, 함수 유형 및 반환 값, 플래그, 명령 요약 및 기대할 수 있는 거의 모든 항목과 같은 일반적인 맨페이지 요소에 대한 전용 마크업 명령이 있는 완전한 기능을 갖춘 DSL입니다. 콘텐츠에 포함된 맨페이지 마크업 언어입니다. 바라보다mdoc(7)
완전한 참조를 위해.
매크로
mdoc
의 상위 집합 인가요man
?
아니요, 전혀 관련이 없는 패키지 mdoc
이며 man
공통 조상만 공유하고 컴퓨터 매뉴얼 페이지에 태그를 지정하는 동일한 목표를 공유합니다.
나는 둘 다
mdoc
일반man
매크로를 공유하는 것으로 나타났습니다
그들은 아무것도 공유하지 않습니다. 아마도 여러분이 보고 있는 것은 mdoc
쓰기와 매크로를 위한 기본 조판 언어인 기본 Roff 명령입니다. 이러한 명령은 사용되는 문서에서는 많이 사용되는 경향이 있지만 사용되는 문서에서는 덜 자주 사용됩니다.man
man
mdoc
표준 Roff 패키지가 매크로 이름을 대문자로 사용하는 방식으로 기본 Roff 명령을 매크로와 쉽게 구별할 수 있습니다. 의 경우 각 매크로의 이름은 , 등 man
의 대문자로 표시됩니다 . 의 경우 , , 등 첫 글자만 대문자로 표시합니다..PP
.TH
.SH
mdoc
.Pp
.Dt
.Sh
Groff의 맨페이지에는
mdoc
일반man
매크로가 전신이라고 명시되어 있지만 이를 대체하는지mdoc
여부는 명시되어 있지 않습니다 .mdoc
man
groff_mdoc(7)
UNIX 매뉴얼 페이지에 대한 전체 참조를 작성하려면 다음 명령을 사용하십시오.-mdoc매크로 패키지;콘텐츠을 기반으로필드GNU troff(1)에 기반한 포맷 패키지입니다. 그 전임자는-남성(7) 페이지 레이아웃을 패키지하고 처리하며 글꼴 및 기타 레이아웃 세부 사항은 개별 작성자에게 맡깁니다.
여기서 "전임자"는 "이전에 사용되었던 비슷한 것"을 의미한다고 생각하지 않습니다. :-)
troff
POSIX 시스템과 다양한 구현(예: Heirloom Troff)에서 Groff보다 이식성이 더 뛰어난 것은 무엇입니까?
이 mdoc
매크로는 오랫동안 잘 지원되어 4.4BSD에서 처음 등장했으며 모든 Groff 설치와 함께 기본적으로 제공되었습니다. 1970년대 중반의 골동품 터미널용 파일을 준비하는 것이 아니라면 두 패키지 모두 이식성이 뛰어난 것으로 간주할 수 있습니다. :)
BSD와 SYSV 및/또는 GNU의 차이점은 무엇입니까?
당신은 올바른 길을 가고 있습니다. 최신 BSD 시스템은 mandoc
기본 컴파일을 사용하여 C 언어를 깔끔하게 재구현한 Format and Display Manpages라는 프로그램을 사용합니다 mdoc
. 이는 레거시 맨페이지가 올바르게 표시될 수 있을 만큼 Roff 언어의 하위 집합만 지원합니다.
Mandoc은 Groff 및 Heirloom과 같은 진정한 조판 프로그램이 아닙니다. 이는 특히 컴퓨터 매뉴얼에 중점을 두고 있습니다. 이를 사용하여 작성된 문서만 mdoc
BSD 파생 플랫폼에서 일관되고 정확하게 렌더링되도록 보장됩니다. 더 자세한 비판은 man
다음에서 확인할 수 있습니다.man(7)
.
간단한 레거시를 사용하여 이것이 가능합니까
man
?
거의. Roff 구문과 파이프 메커니즘을 깊이 이해하고 있는 숙련된 맨페이지 작성자가 아니라면 mdoc
맨페이지 작성 이외의 다른 용도로 Roff를 사용해서는 안 됩니다. 불필요하게 길거나 제한적이라고 troff
생각하는 숙련된 사용자는 이 방법이 더 쉽고 덜 방해적이라고 생각합니다. 그러나 이 저자들은 경험이 풍부하고 자신이 무엇을 하고 있는지 정확히 알고 있습니다.mdoc
man
그러니 당신이 노련한 베테랑이 아니라면,mdoc
.
추가 정보
Roff의 역사에 대해 더 자세히 알고 싶지만 이 답변은 그렇지 않은 경우FMEYEWTK다음은 이미 권위 있는 연구 자료에 대한 링크입니다:
- UNIX 맨페이지의 역사: 50년 이상의 개발 과정을 보여주는 포괄적인 타임라인
- CSTR #54: 원본 Nroff/Troff 사용자 설명서의 PDF 버전 - 널리 Troff 성경으로 간주됨
- "BSD 수동 표시에 대한 Groff 사용 중단"
mandoc
: 노후화의 이유를 설명하는 저자의 논문 .man