web-dev-qa-db-ja.com

「ASCIIテキスト、重ね打ち」ファイル形式の目的

Bashのソースコードをダウンロードした後、docディレクトリを参照していて、次のファイルを見つけました。

  • bash.1 は通常の troffmanページの作成に使用されるファイルです
  • bash.0 は、manページのプレーンテキストバージョンに似ていますが、 ^Hバックスペース制御文字 が自由に分散されているだけです。

これらの制御文字は、Git Webインターフェースによって提供される表現では表示されませんが、 実際のファイルをダウンロードできます であり、Vimなどのテキストエディターで確認できます。

bash.0fileコマンドを実行すると、次の出力が出力されます。

bash.0: ASCII text, with overstriking

このファイル形式に出くわしたことは一度もありません。その目的が何で、どのように使用されているのか疑問に思いました。フレーズ「ASCII text、overstriking」をWebで検索することはあまり賢明ではありませんでした。

46

"backspace"および "overstrike" をWeb検索すると、より良い結果が得られます。

ファイルは nroff を使用してフォーマットされたマニュアルページです。通常、_bash.0_などのファイルは単に生成されて破棄されます。しばらく前は、manプログラムの作業を減らすために保存されました。 _/usr/share/man/man1_ではなく、_/usr/share/man/cat1_からマニュアルページが読み込まれます。例えば catman の説明を読んでください。

nroffは、マニュアルページやその他のファイルをフォーマットするためのUnixコマンドです。それが最初に書かれた当時、他にもいくつかのユーティリティがあり、それぞれに独自のマークアップ言語がありました。私は少なくとも1ダースの異なるものを使用しました。しかし、強調されたテキストを同じ方法で印刷するという問題をすべて解決しました。キャリッジコントロールを使用することです。 Backspacesは他のプレーンテキストファイルでは使用されないため、目立つだけです。 タブ改行改行およびform-feedsすべてがプレーンテキストファイルで役割を果たします(ただし、form-feedsは元々よりもはるかに重要ではありません)。

nroffは、下線を使用してイタリックを示し、重ね打ちでboldを示します。この手法には日付があり、同じ位置に複数の文字を印刷できるハードコピーデバイスに役立ちます。それを行うビデオ端末はほとんどありません。 terminfo(5) では、

_   over_strike               os     os   terminal can over-
                                         strike
_

以上 完全に

端末がoverstrikesの場合(文字が上書きされたときに位置をクリアするのではなく)、os機能。

通常の場合、ビデオ端末の特定の行/列に書き込まれる最後の文字は、allと表示されます。 nroffは、下線付きの文字が下線、バックスペース、および実際の文字として書き込まれるように出力を編成しました。そうすることで、上書き機能のない端末が何か有用なものを出力することが保証されました。

オーバーストライク機能を備えた数少ないビデオ端末の中には、約3年間(1976-1979)使用した DEC gt4 があります。そのシステムにはUnixはありませんでした(RT-11を実行していました)が、同じタイプの上書きされたテキストを使用して text formatter を作成しました。結局、私はハードコピーが必要であり、それを実現するために tility を作成しました—おそらく col のようなものですが、関連する問題を解決しています。下線が引かれたテキストが多い場合、端末は非常にゆっくりと印刷しました。プログラムがテキストを再編成して、順方向/逆方向の動作間の切り替えの量を減らしました。

ビデオ端末では、その必要はありません。しかし、彼らは強打をしません。代わりに、下線とshow下線を認識するプログラム、または groff があり、下線の代わりに色付きのテキストが表示されるプログラムがあります(太字)。

参考文献:

14
Thomas Dickey

オーバーストライキングはnroffTroffの論文 を参照)で使用される方法であり、単純なASCIIが許可するよりも印刷上の可能性を提供します。

  • 太字(同じ文字を重ね打ちする)
  • 下線付きテキスト(_を重ね打ちして)
  • アクセントと発音区別符号(例:éeで上書きすることで生成されます)

ターゲット出力デバイスで許可されているその他のさまざまな記号。

bashでは、これらの.0ファイルはnroffによって直接作成され、次のようなMakefileルールが適用されます。

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

そのようなファイルは、lessを使用して表示できます。重ね打ちシーケンスを処理し、必要に応じて置き換えます。

less bash.0

元々はnroffの出力ターゲットタイプライタースタイルの出力デバイスで、バックスペース文字を受け取るたびにバックアップされていました。重ね打ちすると、目的のビジュアル出力が生成されます。 chirl で指摘されているように、同じ文字を2回押すと、連続したストライクのずれが避けられないため、通常はより大胆な外観になります。付着するインク量の増加も役立ちます。

troff対象の植字機。)

43
Stephen Kitt

そして、それ以前にも、古いタイプライターのように機能し、印刷できる文字のセットが非常に限られていたのは、ゴルフボールプリンターで印刷する方法でした。そのため、nroffは古いテレタイププリンターのバイトストリームを使用して、「画面上」での見方を表します。

7
dsz