“과장된 텍스트가있는 ASCII 텍스트”파일 형식의 목적


46

Bash의 소스 코드를 다운로드 한 후 doc디렉토리를 탐색 하고 다음 파일을 발견했습니다.

이러한 제어 문자는 Git 웹 인터페이스에서 제공하는 표현에는 표시되지 않지만 실제 파일은 Vim과 같은 텍스트 편집기에서 다운로드 하여 검사 할 수 있습니다 .

file명령을 실행하면 bash.0다음 출력이 인쇄됩니다.

bash.0: ASCII text, with overstriking

나는이 파일 형식을 한번도 본 적이 없으며 그 목적이 무엇이며 어떻게 사용되는지 궁금합니다. 웹에서 "ASCII 텍스트, 과다 경고" 를 검색하는 것은 그리 밝지 않았습니다.

답변:


14

"backspace"및 "overstrike"에 대한 웹 검색 은 더 나은 결과를 얻을 수 있습니다.

이 파일은을 사용하여 형식화 된 매뉴얼 페이지 nroff입니다. 일반적으로 같은 파일 bash.0은 단순히 생성되어 버려집니다. 얼마 전 그들은 man프로그램의 작업을 줄이기 위해 저장되었습니다 . 대신 /usr/share/man/man1매뉴얼 페이지를 읽을 수 있습니다 /usr/share/man/cat1. catman예를 들어 설명을 읽으십시오 .

nroff매뉴얼 페이지 및 기타 파일을 형식화하기위한 Unix 명령입니다. 처음 작성된 당시에는 각각 고유 한 마크 업 언어가있는 여러 다른 유틸리티가있었습니다. 나는 적어도 12 가지의 다른 것을 사용했습니다. 그러나 모두 캐리지 제어를 사용하여 동일한 방식으로 강조된 텍스트를 인쇄하는 문제를 해결했습니다. 백 스페이스 는 다른 일반 텍스트 파일에서 사용되지 않기 때문에 눈에 띄게 나타납니다. , 캐리지 리턴 , 줄 바꿈폼 피드는 모두 일반 텍스트 파일에서 역할을합니다 (폼 피드는 원래보다 훨씬 덜 중요합니다).

nroff밑줄을 사용하여 이탤릭체로 표시 하고 과감하게 굵게 표시 합니다. 이 기술은 날짜가 있습니다. 동일한 위치에 둘 이상의 문자를 인쇄 할 수있는 하드 카피 장치에 유용합니다. 그렇게하는 비디오 단말기는 거의 없습니다. 에서 terminfo(5), 그 것

   over_strike               os     os   terminal can over-
                                         strike

또는 더 완전히 :

터미널 경우 overstrikes (오히려 문자를 통해 강타 할 때 위치를 삭제 이상은) 다음은이 있어야 os 능력을.

일반적인 경우, 비디오 터미널의 주어진 행 / 열에 쓰여진 마지막 문자 는 모두 표시됩니다. nroff밑줄이 표시된 문자가 밑줄, 백 스페이스 및 실제 문자로 작성되도록 출력을 구성했습니다. 그렇게하면 오버 스트라이크 기능이없는 터미널이 유용한 것을 인쇄 할 수있었습니다.

오버 스트라이크 기능이있는 비디오 단자 는 거의 3 년 (1976-1979 년) 인 DEC gt40 을 봅니다. 그 시스템에는 Unix가 없었지만 (RT-11을 실행했습니다), 같은 종류의 오버 스트럿 텍스트를 사용하여 텍스트 포맷터를 작성했습니다 . 궁극적으로, 나는 하드 카피가 필요했고 그와 같은 문제를 해결할 수 있는 유틸리티 를 작성 col했지만 관련 문제를 해결했습니다. 밑줄 친 텍스트가 많을 때 터미널이 매우 느리게 인쇄되어 내 프로그램이 텍스트를 재구성하여 앞으로 / 뒤로 전환하는 양을 줄였습니다.

비디오 단자를 사용하면 그럴 필요가 없습니다. 그러나 그들은 과격한 행동을하지 않습니다. 대신 밑줄을 인식하고 밑줄을 표시 하거나 groff밑줄 (굵게) 대신 컬러 텍스트를 표시 할 수있는 프로그램이 있습니다.

더 읽을 거리 :


흥미로운 역사적 배경을 가진 종합적인 답변에 감사드립니다. 밤에는 늦어서 내일 제대로 읽을 것입니다. FWIW, 나는 실제로 오늘 * roff 텍스트 포맷터 제품군을 연구 할 때 맨 페이지를 생성하는 것에 대한 귀하의 답변을 찬성했습니다.
Anthony G-Monica에 대한 정의

43

오버 스트리킹은 일반 ASCII에서 허용하는 것보다 더 많은 인쇄 가능성을 제공하기 위해 사용되는 방법입니다 nroff( Troff paper 참조 ).

  • 굵은 글씨 (같은 문자를 넘어서서)
  • (겹쳐 찍기에 의해 밑줄이 그어진 텍스트 _)
  • (분음 부호 및 액센트 é 겹쳐 찍기 제조 e하여 )

및 타겟 출력 장치에 의해 허용되는 다양한 다른 심볼들.

에서 bash,이 .0파일은 직접 생산 nroff으로, Makefile같은 규칙

.1.0:
        $(RM) $@
        -${NROFF} -man $< > $@

less;를 사용하여 이러한 파일을 볼 수 있습니다 . 오버 스트라이킹 순서를 처리하고 적절하게 교체합니다.

less bash.0

원래 nroff의 출력은 타자기 스타일의 출력 장치를 대상으로하며, 백 스페이스 문자를 수신 할 때마다 백업합니다. 과도한 타격은 원하는 시각적 출력을 생성합니다. chirlu가 지적한 것처럼 , 동일한 캐릭터를 두 번 공격하면 연속적인 타격의 필연적 인 정렬 불량으로 인해 대담한 모습을 보일 것입니다. 퇴적되는 잉크 량의 증가 또한 도움이 될 것이다.

( troff타겟팅 조판 기.)


Troff 사용 설명서에 대한 링크와 파일 생성 방법에 대한 정보를 가져 주셔서 감사합니다. 내 질문에, 나는 또한이 파일들이 어떻게 사용되는지 물었습니다. nroff bash.0우분투 시스템에서 실행 을 시도했지만 많은 경고가 발생했으며 출력은 65 자로 줄 바꿈되었으며 특별한 형식이 없었습니다.
Anthony G-Monica에 대한 정의

1
아 그래, 나는 그 부분을 잊었다. 내 답변을 편집했습니다. nroff이 파일을 보지 않고 생성하는 데 사용됩니다.
Stephen Kitt

2
그렇습니다. 그것은 거의 man bash작동 방식입니다. 파일을 적절한 호출기로 보내기 전에 파일 (또는 관련 섹션) nroff -man을 처리하는 데 사용 됩니다 . .1nroff
Stephen Kitt

5
@Anthony Geoghegan :이 파일을 데이지 휠 프린터 와 같은 임팩트 프린터로 전송한다는 아이디어가있었습니다 . 실제로 문자를 인쇄 한 다음 뒤로 이동 한 다음 다른 문자를 인쇄하여 위에서 설명한 결과를 얻습니다. 굵은 체 텍스트는 오디오 처리에서 "코러스 효과"와 유사합니다. 두 번째 문자는 첫 번째 문자와 약간 잘못 정렬되어 더 두껍습니다.
chirlu

1
@chirlu 레거시 하드웨어에서 인쇄 문자 효과를 얻기 위해 제어 문자를 사용하는 방법에 대한 훌륭한 설명입니다. 이러한 특정 문자의 사용은 현재 많은 의미가 있습니다. 이 답변을 게시하면 올바로 투표 할 수 있습니다. 편집 : Stephen은 이미 이것을 통합하고 확장했습니다.
Anthony G-Monica에 대한 정의

7

그리고 심지어 이전에는 오래된 타자기처럼 작동하고 인쇄 할 수있는 문자 집합이 매우 제한된 골프 공 프린터에서 인쇄하는 방법이었습니다. 따라서 nroff는 구형 텔레타이프 프린터의 바이트 스트림을 사용하여 '화면에서'보이는 방법을 나타냅니다.


nroff실제로 troff어떤 타자기 유형과 달리 타자기에서 인쇄하도록 설계되었습니다 . 출력을 위해 스크린을 사용하는 것은 나중에왔다.
Stephen Kitt

9
난 당신이 입력 한 곳에 오래된만큼이 기계식 타자기를 사용했다고 해요 !입력하여' BACKSPACE .
Barmar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.