Enscriptはテキストの下線をサポートしていますか?

Enscriptはテキストの下線をサポートしていますか?

入力テキストデータの特定の部分を下線で印刷する必要があります。現在、Perlスクリプトを使用してテキストファイルを生成し、「enscript」と「ps2pdf」を使用して生成されたテキストファイルのPDFファイルを生成します。

PDFテキストの特定の部分(下線など)が必要です。どんなアドバイスでも役に立ちます。

- 必要

ここに画像の説明を入力してください。

しかし、@meuhの答えに基づいて生成されたPDFは次のようになります。

ここに画像の説明を入力してください。

sedスクリプトを変更する必要がありますか?

ベストアンサー1

他の方法が見つからない場合は、いつでも enscript の特別なエスケープ用に生成された PostScript を編集できますbggray(以前の回答と同様)。質問)。

入力に特殊なエスケープ文字bggray{0.5}(を使用して変更できます-e)を使用すると、enscriptはPostScript関数を呼び出してbgs背景の影を描画するコードを出力します。出力enscriptと入力の間でこの機能を変更して、背景ボックスの代わりに細い線を描くなど、ps2pdf特定のシェーディング値を見つけることができます。0.01

私のバージョンは次のように定義enscriptされています。bgs

/bgs {  % x y height blskip gray str -> -  show string with bg color
 ...
    x y blskip sub str stringwidth pop height Box

x y ... Boxsedスクリプトを使用してプロットを変更できます

enscript ... |
sed '
 /^\/bgs/,/^}/{
    /x y blskip sub str stringwidth pop height Box/{
      s/^/ %--% /
      a\
   /lh height .05 mul def \
   /y2 y height .2 mul add def \
   gray 0.01 eq { x y2 blskip sub str stringwidth pop lh Box /gray 0 store } \
                { x y blskip sub str stringwidth pop height Box } ifelse
    }
}' |
ps2pdf ...

簡単に変更できる2つの部分を追加しました。線の開始は、/lh線の厚さを高さの一部として定義します。.05線を太く(つまり太く)変更します。次の行は、/y2下線をボックスの高さの0.2倍上に移動することから始まります。これは前の質問で修正されたものに対応します。

bggrayエスケープ文字がテキストの横にあり、末尾のスペースに下線が引かれていないことを注意して確認する必要があります。例えば、

enscript -fCourierBold12 -e@ -p- | ...
@bggray{0.01}underlined text@bggray{1} normal text

次の画像を作成します。 ここに画像の説明を入力してください。

おすすめ記事