트루프

troff
트루프
원본 작성자조 오산나
개발자AT&T 벨 연구소
운영 체제Unix, Unix 유사, Plan 9
플랫폼크로스 플랫폼
유형명령
웹사이트troff.org Edit this on Wikidata

troff (/theptiːrɒf/)는 "형식자 로프"의 줄임말로, AT&T Corporation유닉스 운영체제용으로 개발한 문서처리 시스템의 주요 구성요소다.트로프와 관련된 nroff는 둘 다 원래의 로프에서 개발되었다.

nroff는 단자와 라인 프린터에서 출력을 생산하기 위한 것이었지만, troff는 형식 설정 시스템, 특히 1972년에 도입된 그래픽 시스템 CAT에서 출력을 생산하기 위한 것이었다.둘 다 동일한 기본 마크업 언어를 사용했으며 일반적으로 단일 소스 파일은 변경 없이 nroff 또는 troff에 의해 사용될 수 있다.

troff features 명령을 사용하여 글꼴, 간격, 단락, 여백, 각주 등을 지정할 수 있다.다른 많은 텍스트 포맷터와 달리 트로프는 한 페이지에 임의로 문자를 배치할 수 있고, 심지어 겹치기도 하며, 프로그램 가능한 입력 언어를 가지고 있다.테이블, 다이어그램, 수학의 보다 편리한 생산을 위해 별도의 프리프로세서가 사용된다.Trooff에 대한 입력은 텍스트 편집기에서 만들 수 있는 일반 텍스트 파일이다.

다양한 문서 스타일에 대한 광범위한 매크로 패키지가 작성되었다.대표적인 트로프 분포로는 연구논문 서식을 포맷하기 위한 메크로, 유닉스페이지 작성을 위한 manmdoc 매크로, 탑재 가능한 슬라이드를 만들기 위한 mv 매크로, 편지, 책, 기술 암기 및 보고서용 msmm 매크로 등이 있다.

역사

트로프의 기원은 1960년대 중반 MITCTSS 운영체제를 위해 제롬 H. 솔처가 쓴 'LULASULF'라는 텍스트 포맷 프로그램으로 추적할 수 있다. (이 이름은 내가 문서를 실행할 것이라는 문구에서 유래했다고 한다.)

밥 모리스는 그것을 GE 635 아키텍처에 포팅하고 프로그램 로프(유출물의 약칭)라고 불렀다.[citation needed]PDP-7위해 rf로 다시 작성되었으며, 동시에(1969년) 더그 매킬로이BCPL 프로그래밍 언어로 확장되고 단순화된 버전의 로프를 다시 썼다.

번째 버전의 유닉스는 벨 연구소에 있는 PDP-7에서 개발되었다.1971년에 개발자들은 운영 체제에 대한 추가 작업을 위해 PDP-11을 얻기를 원했다.이들은 이 시스템에 대한 비용을 정당화하기 위해 벨랩스 특허부서에 문서형식 시스템을 도입할 것을 제안했다.[1]이 첫 번째 포맷 프로그램은 조 F가 쓴 매킬로이의 로프를 재구성한 것이다. 오산나.

그들이 좀 더 유연한 언어를 필요로 할 때, nroff(더 적은 "roff")라고 불리는 새로운 버전의 로프가 쓰여졌고, 이것은 모든 미래의 버전에 대한 기초를 제공했다.그들이 Graphic Systems CAT 포토타입세터를 얻었을 때, Ossanna는 nroff를 수정하여 다중 글꼴과 비례적 간격을 지원하였다.'트로프'라고 불리는, 타이페터 로프의 정교한 출력은 타이페터 제조업체를 놀라게 했고 트로프를 사용한 원고가 이전에 출판되었다고 생각했던 동료 검토자들을 혼란스럽게 했다.[2][3]이와 같이 트로프라는 이름은 *//trtrf/가 아니라 /ˈtiːrɒf/로 발음된다.

troff와 함께 nroff (실제로 거의 같은 프로그램이었다)가 나왔고, 이것은 라인 프린터와 문자 단자의 출력을 생산하기 위한 것이었다.그것은 트로프가 했던 모든 것을 이해했고, 글꼴 변경과 같은 해당되지 않는 명령들을 무시했다.

Ossanna의 troofPDP-11 어셈블리 언어로 작성되었으며, CAT 포토타입체터를 위해 특별히 출력을 생산했다.지금은 7,000줄의 미결 코드였고 여전히 CAT에 의존하고 있지만 그는 그것을 C로 다시 썼다.CAT가 덜 보편화되고, 더 이상 제조사의 지원을 받지 못함에 따라, 다른 기기를 지원하도록 할 필요성이 우선시 되었다.오산나는 이 일이 완성되기 전에 죽었기 때문에 브라이언 케르니건트로프를 다시 쓰는 일을 맡았다.새로 고쳐 쓴 버전은 장치 독립 코드를 생성했는데, 이는 사후 처리자들이 적절한 프린터 코드를 읽고 번역하기 매우 쉬웠다.또한 이 새로운 버전의 트로프(장치 독립 트로프용 디트로프라고도 함)에는 몇 가지 확장자가 있었는데, 여기에는 도면 기능이 포함되어 있었다.[4]이 프로그램의 문서에는 GNU 그로프 같은 많은 현대 트로프 클론들이 사용하는 디트로프의 출력 형식이 정의되어 있다.

툴(사전 및 사후 처리기 포함)의 트로프 컬렉션을 결국 DWB(Documenter's WorkBench)라고 불렀으며, 벨 랩에서 지속적으로 개발되었고, 이후 1994년까지 스핀오프 유닉스 시스템 연구소(USL)에서 개발되었다.당시 소프트쿼드는 브라이언 케르니건이 스스로 트로피를 계속 개선해 왔음에도 불구하고 유지보수를 이어받았다.따라서 적어도 사용 중인 원래의 Bell Labs troff에는 다음과 같은 변형들이 있다.

  • 1994년부터 USL DWB 2.0에 기반한 SoftQuad DWB.
  • Lucent Software Solutions(이전의 USL)의 DWB 3.4;
  • Trooff, Plan 9 에디션.

트로프인터리프, 프레임메이커, 라텍스 등의 다른 프로그램으로 대체되었지만, 여전히 상당히 광범위하게 사용되고 있다.UNIX 문서의 기본 포맷터로 남아 있다.

이 소프트웨어는 1990년부터 GNU 시스템을 위한 으로 재구상되었다.또한 고대 UNIX 시스템의 오픈 소싱은 물론, 벨 연구소의 오픈솔라리스와 플랜9에서 발견된 디트로프 기반 오픈소싱 버전과 같은 현대의 후계자들로 인해, 다양한 오픈소스 라이센스로 이용할 수 있는 AT&T 트로프(CAT 및 디트로프[5] 기반)의 몇 가지 버전이 있다.

매크로스

트로프에는 문서 처리를 시작하기 전에 실행되는 매크로라는 명령 집합이 포함되어 있다.이러한 매크로에는 페이지 머리글과 바닥글 설정, 새 명령 정의, 출력 포맷 방법에 일반적으로 영향을 미치는 것이 포함된다.매크로 집합을 포함하기 위한 명령줄 인수-mname이며, 이로 인해 많은 매크로 집합이 선행 m을 가진 기본 파일 이름으로 알려져 왔다.

선행 m을 사용하는 표준 매크로 집합은 다음과 같다.

  • 수동 페이지[6][7] 작성용 남자
  • mdoc는 다른 형식으로의 mandoc 변환에 더 잘 적응하는 의미론적 수동 페이지를 위한 mdoc.[8][9] mandoc두 세트의 수동 명령을 모두 지원하는 퓨전이다.[10]
  • 연구논문[11] 만든 나
  • 각서[12] 작성용 mm
  • , 보고서 및 기술 문서 작성을 위한[13] ms

보다 포괄적인 매크로 목록은 일반적으로tmac(5) 수동 [10]페이지

프리프로세서

트로프가 진화하면서 트로프에서는 쉽게 할 수 없는 몇 가지가 있기 때문에 여러 개의 프리프로세서가 개발되었다.이러한 프로그램은 문서의 특정 부분을 트로프 입력으로 변환하여 유닉스의 "파이프라인" 사용에 자연스럽게 적합하게 되며, 한 프로그램의 출력을 다른 프로그램(파이프 및 필터 참조)으로 보낸다.일반적으로 각 전처리기기는 특별히 표시된 입력 파일의 부분만 변환하여 파일의 나머지를 변경하지 않고 전달한다.내장된 사전 처리 지침은 간단한 응용 프로그램별 프로그래밍 언어로 작성되어 높은 수준의 힘과 유연성을 제공한다.

  • eqn 전처리기(precessor)는 수학 공식을 간단하고 직관적으로 지정할 수 있다.[14]
  • tbl은 테이블 포맷을 위한 전처리장치다.
  • 참고문헌 데이터베이스에 따라 문서의 인용문을 처리한다.

세 개의 프리프로세서는 그림을 묘사하기 위한 도메인별 언어를 정의함으로써 그림 그리기 기능을 제공한다.

  • pic상자 등 다양한 그리기 기능을 제공하는 절차적 프로그래밍 언어다.[15]
  • 이상선언적으로 그림 그리기를 허용하며, 입력에 의해 기술된 벡터와 변환에 기초한 동시 방정식의 시스템을 해결함으로써 그림을 도출한다.[16]
  • grn은 초기 그래픽 워크스테이션에 의해 정의된 gremlin 파일 형식에 기초하여 절대 좌표로 그려진 그래픽 요소를 통해 그림을 설명한다.[17]

그러나 더 많은 프리프로세서들은 사진을 위한 출력을 생성함으로써 더 복잡한 그림을 그릴 수 있게 한다.

재구상

참고 항목

참조

  1. ^ Kernighan, B. W. (October 2019). Unix: A History and a Memoir. Kindle Direct Publishing. p. 42. ISBN 9781695978553.
  2. ^ J. F. Ossanna.Nroff/Troff 사용 설명서.1976년 벨 연구소, 54번 CSTR.B에 의해 수정되었다.W. Kernighan, 1992.
  3. ^ McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  4. ^ B. W. 케르니간A Typesetter-Independent TROFF. CSTR #97, Bell Labs, 1981년 3월 개정.
  5. ^ OpenSolaris에서 ditroff -> 포스트스크립트 변환기의 맨 페이지 참조: – IllumonosOpenSolaris User Commands 참조 매뉴얼(최신 Sun 기반 OpenSolaris)
  6. ^ "Writing and Formmating UNIX Manual Pages with -man macros". home.fnal.gov. Retrieved 7 May 2019.
  7. ^ man(7)Linux Miscellanea 설명서
  8. ^ mdoc(7)FreeBSD 기타 정보 설명서
  9. ^ "Index - Mandoc extended documentation". Mandoc. Retrieved 7 May 2019.
  10. ^ a b groff_tmac(5) - Linux 파일 형식 설명서
  11. ^ groff_me(7)Linux Miscellanea 설명서
  12. ^ groff_mm(7)Linux Miscellanea 설명서
  13. ^ groff_ms(7)Linux Miscellanea 설명서
  14. ^ B. W. 케르니건과 로린다 L.체리수학 유형 설정 시스템.1974년 5월, 벨 연구소 17번 CSTR.
  15. ^ B. W. 케르니간PIC — 유형 설정을 위한 그래픽 언어(수정된 사용 설명서)1984년 12월, 벨 연구소의 CSTR #116.
  16. ^ C. J. 반 와이크이상적 사용 설명서.1981년 12월, 벨 연구소 103번 CSTR.
  17. ^ grn — gremlin 파일을 위한 groff 전처리기[1].
  18. ^ J. L. 벤틀리와 B.W. 케르니간GRAP 그래프 유형 설정 언어(설명서사용 설명서)1984년 8월 벨 연구소의 CSTR #114.
  19. ^ J. L. 벤틀리, L. W. 젤린스키, B.W. 케르니간CHEM 화학 구조 다이어그램 유형 설정 프로그램.CSTR #122, Bell Labs, 1986년 4월.
  20. ^ J. L. 벤틀리DFORMAT 데이터 형식 설정 프로그램.1988년 4월 벨 연구소 142번 CSTR.
  21. ^ http://litcave.rudi.ir/neatroff.pdf[bare URL PDF]

외부 링크