検査中ソースコードless
less.man
、含まれているマンページ()でターミナルエスケープコードを使用して太字のテキストを表示することを確認しました。
^[[1mNAME^[[0m
less - opposite of more
^[[1mSYNOPSIS^[[0m
^[[1mless -?^[[0m
^[[1mless --help^[[0m
^[[1mless -V^[[0m
^[[1mless --version^[[0m
^[[1mless [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]^[[0m
生成に使用されるコマンドは次のとおりですnroff -man
。
$ head Makefile.aut
# Makefile for authoring less.
EMAIL = [email protected]
HOMEPAGE = http://www.greenwoodsoftware.com/less
SHELL = /bin/sh
RCS = rcs
NROFF = nroff -man
ただし、実行すると、nroff -man less.nro
バックスペースを使用して(通常の)マンページ出力を取得します。
N^HNA^HAM^HME^HE
less - opposite of more
S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS
l^Hle^Hes^Hss^Hs -^H-?^H?
l^Hle^Hes^Hss^Hs -^H--^H-h^Hhe^Hel^Hlp^Hp
l^Hle^Hes^Hss^Hs -^H-V^HV
l^Hle^Hes^Hss^Hs -^H--^H-v^Hve^Her^Hrs^Hsi^Hio^Hon^Hn
最初のテーブルを作成する方法は?
ベストアンサー1
「第1型」の特徴は...groff
。 「nroff」がラッパーでない場合は、groff
2番目の形式のみが表示されます。
この関数はマニュアルページに記載されています。grotty
(タイプライターに類似した装置のための groff ドライバー):
基本的に、 悪い テキスト属性(太字、斜体、色)を変更するには、SGRエスケープシーケンス(ISO 6429、ANSIカラーエスケープとも呼ばれます)をエクスポートします。これにより、8つの異なる背景色と前景色を持つことができ、太字のフォントとイタリック体のプロパティも使用できます。同時に (BIフォントを使用)。
実際にはうまくいきません。たとえば、同じコメントがどのように処理されるかを確認します(これらのシーケンスを後処理します)。ここに間違った情報があります。:
基本的に、悪いテキスト属性(太字、斜体、色)を変更するには、SGRエスケープシーケンス(ISO 6429、ANSIカラーエスケープとも呼ばれます)をエクスポートします。これにより、8つの異なる項目を持つことができます。M[緑]背景M[]そしてm[赤]前景m[]色に加えて、太字およびイタリック体のプロパティも使用できます。BI]同時](BIフォントを使用)。
したがって、一部の開発者はそれを使用しないことを決定します(例:この議論Emacsメーリングリストから)。
しかし、マニュアルページに示すように「基本的に」。したがって、groffがある場合は、対応するエスケープシーケンスを生成する必要があります。
パッケージャでは、パッチを適用してプログラムを変更できます。 @muruのコメントにDebianのバージョンが記載されています(参照エラーレポートそして包装ページ)。パッケージ変更ログには次のように表示されます。
-- Colin Watson <[email protected]> Sat, 27 Jul 2002 18:41:46 +0100
groff (1.18-1) unstable; urgency=low
* Disable the new ANSI colour/bold/underline escapes in nroff mode,
because most pagers either fail to cope with it or need special options
to do so. It can be re-enabled by editing /etc/groff/man.local and
/etc/groff/mdoc.local, or by setting the environment variable GROFF_SGR
to something non-empty.
しかし、groffソースは言及していません。GROFF_SGR
;それは参照のみですGROFF_NO_SGR
:
./NEWS:1108: for the GROFF_NO_SGR environment variable also.
./NEWS:1450:o If the environment variable GROFF_NO_SGR is set, SGR output is disa...
./PROBLEMS:33: 1. Set the GROFF_NO_SGR environment variable.
./doc/webpage.ms:1920:. URL #GROFF_NO_SGR GROFF_NO_SGR
./doc/webpagewebpage.ms:1922:. nop GROFF_NO_SGR
./doc/webpagewebpage.ms:2437:.TAG GROFF_NO_SGR
./doc/webpagewebpage.ms:2439:If the environment variable GROFF_NO_SGR is set, SGR output is
./src/devices/grotty/grotty.man:126:.B GROFF_NO_SGR
./src/devices/grotty/grotty.man:394:.B GROFF_NO_SGR
./src/devices/grotty/tty.cpp:864: if (getenv("GROFF_NO_SGR"))
そして、変更ログ(ChangeLog.118)は何の手がかりも提供しません。
2002-02-12 Werner LEMBERG <[email protected]>
* src/libs/libgroff/Makefile.sub (snprintf.o): Don't use
$(COMPILE.c) to not include groff's assert.h.
* src/drivers/grotty/tty.cc (main): Add GROFF_NO_SGR environment
variable.
* NEWS, src/drivers/grotty/grotty.man: Document it.
設定はGROFF_NO_SGR
SGRシーケンスを提供しません(マンページが正しい)。 Debian 変更ログのコメントは、/etc/groff/man.local
Debian が変数チェックを追加したこのブロックを参照しますGROFF_SGR
。
. \" Debian: Disable the use of SGR (ANSI colour) escape sequences by
. \" grotty.
. if '\V[GROFF_SGR]'' \
. output x X tty: sgr 0
環境変数を設定すると、太いSGRシーケンスなどが生成されます。