“ASCII metin, fazla çizili” dosya biçiminin amacı


46

Bash kaynak kodunu indirdikten sonra, docdizine göz atıyordum ve aşağıdaki dosyalara rastladım:

  • bash.1man sayfasını oluşturmak için kullanılan düzenli bir troff dosyasıdır .
  • bash.0Bu, man sayfasının düz bir metin versiyonuna benziyor - yalnızca liberal bir biçimde dağılmış olan ^Hbackspace kontrol karakterine sahip .

Bu kontrol karakterleri Git web arayüzü tarafından verilen gösterimde gösterilmez, ancak asıl dosya Vim gibi metin editöründe indirilebilir ve incelenebilir.

fileKomutun çalıştırılması bash.0aşağıdaki çıktıyı yazdırır:

bash.0: ASCII text, with overstriking

Bu dosya formatına daha önce hiç rastlamadım ve amacının ne olduğunu ve nasıl kullanıldığını merak ediyordum. Web'de “ASCII text, overstriking” ifadesi aranıyor, çok aydınlatıcı değildi.

Yanıtlar:


14

"Backspace" ve "overstrike" için yapılan web araştırması daha iyi sonuçlar verecektir.

Dosya manuel bir sayfadır - kullanılarak biçimlendirilmiştir nroff. Genellikle bu dosyalar bash.0basit bir şekilde oluşturulur ve atılır. Bir süre önce, manprogramın çalışmasını azaltmak için kurtarıldılar . Aksine /usr/share/man/man1, manuel sayfalarınızdan okunacaktı /usr/share/man/cat1. catmanÖrneğin açıklamasını okuyun .

nroffmanuel sayfaları ve diğer dosyaları biçimlendirmek için kullanılan Unix komutudur. İlk yazıldığında, her biri kendi biçimlendirme dili olan başka birçok yardımcı program vardı. En azından bir düzine farklı kullandım. Ancak hepsi aynı şekilde vurgulanan metni basma sorununu da çözdüler: taşıyıcı kontrolü kullanmak. Diğer düz metin dosyalarında kullanılmadığından geri boşluklar yalnızca fark edilir. Sekmeler , satır başı satırları , satır akışları ve form akışlarının tümü düz metin dosyalarında rol oynar (form yayınları başlangıçta olduklarından çok daha az önemli olsa da).

nroffitalik belirtmek için alt çizgi çizer ve koyu renk göstermek için fazla çizilidir . Teknik tarihli: Birden fazla karakterin aynı konumda basılabildiği basılı kopya aygıtlar için kullanışlıdır. Çok az sayıda video terminali bunu yapar. İçinde terminfo(5), bu olurdu

   over_strike               os     os   terminal can over-
                                         strike

veya daha fazlası tamamen :

Eğer terminal aşırıya kaçarsa (bir karakterin üzerine vurulduğunda bir pozisyonu silmek yerine) os kabiliyetine sahip olmalıdır .

Genel durumda, bir video terminalinin belirli bir satırına / sütununa yazılan son karakter gösterilenlerin tümü olacaktır . nroffÇıktıyı, altı çizili bir karakterin altı çizili bir karakter, bir geri alma ve gerçek karakter olarak yazılması için düzenledi. Bunu yaparak fazla aşma özelliği olmayan terminallerin faydalı bir şeyler basmasını sağlar.

Aşırı çekim kabiliyetine sahip listelenen video terminalleri arasında yaklaşık üç yıl kullandığım DEC gt40'ı görüyorum (1976-1979). Bu sistemde Unix yoktu (RT-11 kullanıyordu), fakat aynı türde aşırı yazılmış metni kullanarak bir metin biçimlendiricisi yazdım . Sonuçta, basılı kopyaya ihtiyacım vardı ve bunun gerçekleşmesi için bir yardımcı program yazdım - colbelki de bir şey gibi - ama ilgili bir problemi çözmek. Terminal, altı çizili metnin çok altındayken çok yavaş basıldı; programım ileri / geri hareket arasındaki geçiş miktarını azaltmak için metni yeniden düzenledi.

Video terminalleri ile buna gerek yok. Ancak aşırıya kaçmıyorlar. Bunun yerine, altı çizili tanımak ve programları var göstermek altçizgilerini ya sahip groffaltını (ve cesur) yerine metni renkli göstermek olabilir.

Daha fazla okuma:


İlginç tarihi geçmişe sahip kapsamlı cevap için teşekkür ederiz. Benim için gece geç saatlerde yani yarın düzgün okuyacağım. FWIW, * roff metin formatlayıcıları ailesini araştırırken, bugün erken saatlerde man sayfaları oluşturma konusundaki cevabınızı gerçekten vurguladım.
Anthony G - Monica için adalet,

43

Aşırı dikkat, düz ASCII'nin izin verdiğinden daha fazla tipografik olanaklar sunmak nroffiçin kullanılan Troff makalesine bakınız :

  • kalın yazı (aynı karakteri aşarak)
  • altı çizili metin (fazla çizerek _)
  • (vurgular ve diacritics örneğin é overstriking üretilen eile )

ve hedef çıktı cihazı tarafından izin verilen çeşitli diğer semboller.

Içinde bash, bu .0dosyalar gibi kurallar nroffile doğrudan tarafından üretilmektedirMakefile

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

Bu dosyaları kullanarak less; aşırı dizilimleri sıralar ve uygun şekilde değiştirir:

less bash.0

Başlangıçta nroffçıktı, her bir geri alma karakteri aldıklarında yedekleme yapacak olan daktilo tarzı çıktı aygıtlarını hedef alıyordu; aşılması istenen görsel çıktıyı üretecektir. Chirlu'nun belirttiği gibi , aynı karaktere iki kez vurmak , art arda gelen grevlerin kaçınılmaz yanlış hizalanması sayesinde genellikle daha cesur bir görünüme neden olur; yatırılan mürekkep miktarındaki artış da yardımcı olacaktır.

( troffhedeflenmiş dizgi makineleri.)


Troff Kullanıcı El Kitabı'na bağlantı ve dosyaların nasıl oluşturulduğuyla ilgili bilgiler için teşekkür ederiz. Soruma göre, bu dosyaların nasıl kullanılması amaçlandığını da sordum. nroff bash.0Ubuntu sistemimde çalışmayı denedim , ancak birkaç uyarı üretti, çıktı 65 karaktere düştü ve özel bir biçimlendirme yoktu.
Anthony G - Monica için adalet,

1
Ah evet, o kısmı unuttum; Cevabımı düzenledim. nroffgörüntülemek için değil bu dosyaları üretmek için kullanılır.
Stephen Kitt

2
Evet, ve bu oldukça man bashişe yarıyor; uygun çağrı cihazına beslenmeden önce bir dosyayı olan dosyayı (ya da hangi bölümle alakalıysa) nroff -manişlemek için kullanır . .1nroff
Stephen Kitt

5
@Anthony Geoghegan: Bu dosyayı bir papatya tekerleği yazıcı gibi etkili bir yazıcıya göndermeniz gerektiği fikri . Aslında bir karakteri basar, sonra geriye gider, sonra diğer karakteri basar ve yukarıda açıklandığı gibi sonuçlanır. Kalın metin, ses işlemedeki "koro efektine" benzer: İkinci karakter, ilk sırada kalın bir çizgiyle sonuçlanacak şekilde çok az yanlış hizalanmış.
chirlu

1
@chirlu Bu, eski donanımlarla tipografik efektler elde etmek için kontrol karakterlerinin nasıl kullanıldığının harika bir açıklaması. Bu özel karakterlerin kullanımı şimdi çok anlamlı. Bunu bir cevap olarak gönderirseniz, doğru şekilde oylayabilirim. Düzenleme: Stephen zaten buna dahil olmuş ve genişlemiştir.
Anthony G - Monica için adalet,

7

Ve daha önceleri, eski daktilolar gibi çalışan ve yazdırabilecekleri çok sınırlı bir karakter dizisine sahip olan golf topu yazıcılarına yazdırma yöntemi idi. Bu yüzden nroff, eski bir teletype yazıcısının bayt akışını kullanarak 'ekranda' nasıl görünmesi gerektiğini temsil eder.


nroffaslında başlangıçta daktilo yazarlarına baskı yapmak için tasarlandı, troffhangi dizgi yazarlarını hedef alıyordu? Çıktı için ekranları kullanmak daha sonra geldi ...
Stephen Kitt

9
Ben yazdığınız nerede eski yeterince mekanik daktilo kullanmış edeceksem !yazarak' BACKSPACE .
barmar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.