Tujuan dari format teks “ASCII, dengan overstriking”

46

Setelah mengunduh kode sumber untuk Bash, saya menjelajah docdirektori dan menemukan file-file berikut:

Karakter kontrol ini tidak ditampilkan dalam representasi yang disediakan oleh antarmuka web Git tetapi file sebenarnya dapat diunduh dan diperiksa dalam editor teks seperti Vim.

Menjalankan fileperintah pada bash.0mencetak hasil berikut:

bash.0: ASCII text, with overstriking

Saya belum pernah menemukan format file ini sebelumnya dan saya bertanya-tanya apa tujuannya dan bagaimana menggunakannya. Mencari Web untuk frase “teks ASCII, dengan overstriking” belum sangat mencerahkan.

Anthony G - keadilan untuk Monica
sumber

Jawaban:

14

Pencarian web untuk "backspace" dan "overstrike" akan mendapatkan hasil yang lebih baik.

File adalah halaman manual - diformat menggunakan nroff. Biasanya file seperti bash.0ini dibuat dan dibuang begitu saja. Beberapa waktu yang lalu, mereka diselamatkan, untuk mengurangi pekerjaan untuk manprogram ini. Daripada /usr/share/man/man1, halaman manual Anda akan dibaca /usr/share/man/cat1. Baca deskripsi catmanmisalnya.

nroffadalah perintah Unix untuk memformat halaman manual dan file lainnya. Kembali ketika pertama kali ditulis, ada beberapa utilitas lain, masing-masing dengan bahasa markup sendiri. Saya telah menggunakan setidaknya selusin yang berbeda. Tetapi mereka semua memecahkan masalah pencetakan menekankan teks dengan cara yang sama: menggunakan kontrol carriage. Backspace hanya terlihat karena mereka tidak digunakan dalam file teks biasa lainnya. Tab , carriage return , feed-line dan form-feeds semuanya memiliki peran dalam file teks biasa (meskipun feed form jauh lebih penting daripada aslinya).

nroffmenggunakan garis bawah untuk menunjukkan huruf miring dan overstriking untuk mewakili huruf tebal . Teknik ini kuno: berguna untuk perangkat hard-copy di mana lebih dari satu karakter dapat dicetak pada posisi yang sama. Sangat sedikit terminal video yang melakukannya. Dalam terminfo(5), itu akan menjadi

   over_strike               os     os   terminal can over-
                                         strike

atau lebih lengkap :

Jika terminal melakukan serangan berlebihan (daripada membersihkan posisi ketika karakter dihantam) maka terminal harus memiliki os kemampuan.

Dalam kasus biasa, karakter terakhir yang ditulis pada baris / kolom tertentu dari terminal video adalah semua yang ditampilkan. nroffmengatur output sehingga karakter yang digarisbawahi ditulis sebagai garis bawah, backspace dan karakter yang sebenarnya. Melakukan hal itu memastikan terminal tanpa fitur overstrike akan mencetak sesuatu yang bermanfaat.

Di antara beberapa terminal video yang terdaftar yang memiliki kemampuan overstrike, saya melihat DEC GT40 , yang saya gunakan selama sekitar tiga tahun (1976-1979). Tidak ada Unix pada sistem itu (ia menjalankan RT-11), tetapi saya menulis formatter teks , menggunakan jenis teks yang terlalu disebar. Pada akhirnya, saya membutuhkan hardcopy, dan menulis sebuah utilitas untuk mewujudkannya - sesuatu seperti col, mungkin - tetapi menyelesaikan masalah terkait. Terminal dicetak sangat lambat ketika memiliki banyak teks yang digarisbawahi, sampai program saya mengatur ulang teks untuk mengurangi jumlah perpindahan antara gerakan maju / mundur.

Dengan terminal video, tidak perlu untuk itu. Namun mereka tidak melakukan overstriking. Sebagai gantinya, kami memiliki program yang mengenali garis bawah dan menunjukkan garis bawah, atau memiliki groff, yang mungkin menampilkan teks berwarna alih-alih garis bawah (dan tebal).

Bacaan lebih lanjut:

Thomas Dickey
sumber
Terima kasih atas jawaban komprehensif dengan latar belakang sejarah yang menarik. Sudah larut malam bagi saya jadi saya akan membacanya dengan benar besok. FWIW, saya benar-benar meningkatkan jawaban Anda untuk menghasilkan halaman manual sebelumnya hari ini ketika saya sedang meneliti keluarga * roff pembuat format teks.
Anthony G - keadilan untuk Monica
43

Overstriking adalah metode yang digunakan dalam nroff(lihat kertas Troff ) untuk menawarkan lebih banyak kemungkinan tipografis daripada yang diizinkan oleh ASCII:

  • teks tebal (dengan men-overtrak karakter yang sama)
  • teks yang digarisbawahi (dengan overstriking _)
  • aksen dan diakritik ( misalnya é diproduksi dengan berlebihan edengan )

dan berbagai simbol lainnya, sebagaimana diizinkan oleh perangkat output target.

Di bash, .0file - file ini diproduksi langsung oleh nroff, dengan Makefileaturan seperti

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

Anda dapat melihat file seperti itu menggunakan less; itu akan memproses urutan overstriking dan menggantinya sesuai:

less bash.0

nroffPerangkat keluaran dengan gaya keluaran yang ditargetkan pada awalnya , yang akan mencadangkan setiap kali mereka menerima karakter backspace; overstriking akan menghasilkan output visual yang diinginkan. Seperti yang ditunjukkan oleh chirlu , memukul karakter yang sama dua kali biasanya akan menghasilkan penampilan yang lebih berani berkat ketidakselarasan yang tak terhindarkan dari serangan berturut-turut; peningkatan jumlah tinta yang disimpan juga akan membantu.

( troffmesin pembuat huruf yang ditargetkan.)

Stephen Kitt
sumber
Terima kasih atas tautan ke Panduan Pengguna Troff dan informasi tentang bagaimana file diproduksi. Dalam pertanyaan saya, saya juga bertanya bagaimana file-file ini dimaksudkan untuk digunakan. Saya mencoba menjalankan nroff bash.0pada sistem Ubuntu saya tetapi menghasilkan sejumlah peringatan, hasilnya keras pada 65 karakter dan tidak ada format khusus.
Anthony G - keadilan untuk Monica
1
Ah ya, saya lupa bagian itu; Saya sudah mengedit jawaban saya. nroffdigunakan untuk menghasilkan file-file ini, bukan untuk melihatnya.
Stephen Kitt
2
Ya, dan begitulah cara man bashkerjanya; ini digunakan nroff -manuntuk memproses .1file (atau bagian mana saja yang relevan), yang merupakan nrofffile, sebelum diumpankan ke pager yang sesuai.
Stephen Kitt
5
@Anthony Geoghegan: Idenya adalah Anda akan mengirim file ini ke printer berdampak, seperti printer roda daisy . Ini sebenarnya akan mencetak karakter, lalu mundur, lalu mencetak karakter lain, dengan hasil seperti yang dijelaskan di atas. Teks tebal mirip dengan "efek paduan suara" dalam pemrosesan audio: Karakter kedua sangat sedikit tidak selaras dengan yang pertama, mengarah ke garis yang lebih tebal.
chirlu
1
@ chirlu Itulah penjelasan yang bagus tentang bagaimana karakter kontrol digunakan untuk mencapai efek tipografi dengan perangkat keras sebelumnya. Penggunaan karakter-karakter khusus itu sangat masuk akal sekarang. Jika Anda memposting ini sebagai jawaban, saya dapat membatalkannya dengan benar. Sunting: Stephen telah memasukkan dan memperluas ini.
Anthony G - keadilan untuk Monica
7

Dan bahkan sebelumnya, itu adalah metode pencetakan pada printer bola golf yang bekerja seperti mesin tik lama dan memiliki serangkaian karakter yang sangat terbatas yang dapat mereka cetak. Jadi nroff menggunakan aliran byte dari printer teletype lama untuk mewakili bagaimana seharusnya terlihat 'di layar'.

dsz
sumber
nroffsebenarnya dirancang awalnya untuk mencetak pada mesin tik, sebagai lawan dari troffjenis huruf yang ditargetkan. Menggunakan layar untuk keluaran datang kemudian ...
Stephen Kitt
9
Saya cukup tua untuk menggunakan mesin tik mekanis tempat Anda mengetik !dengan mengetik' BACKSPACE .
Barmar