groff -msで他のフォントのコレクションを使用することはできません。

groff -msで他のフォントのコレクションを使用することはできません。

groffマクロを使ってmsPostScriptに出力しています。 Linuxでは無効です。他のフォントと出力Unicode文字が必要です。私のフォントを次のように変換しました。これ質問。記載されているように、それは私に適しています(msマクロなし)。ただし、タイトル、作成者、タイトルは正しく表示されません(中央には表示されず、特別な書式もありません)。

.ft linlibertine_rah
.TL
Title
.AU
Author
.NH
Heading
.PP
\[u1E6C]

出力先:

このオプションを使用して同じ文書をコンパイルすると、-ms「Times」フォントがあり、Unicode記号はありませんが、形式は正しい文書を取得します。

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

マニュアルで指定されているフォントファミリはgroff_ms文字列を使用して指定されます.FAMが、結果はを使用したのと同じです.ft。また、コンソールにも出力されます。

troff: test.ms:9: warning: can't find special character 'u0054_0323'

次のように出力されるので、フォントを検出したはずです.ft samplefont

troff: test.ms:1: warning: can't find font 'samplefont'
troff: test.ms:9: warning: can't find special character 'u0054_0323'

groffだから私の質問は:マクロで他のフォントコレクションをどのように使用できますかms

答え1

文字列を使用してフォントのコレクションを指定するには、ローマ字、太字、イタリック体、太いイタリック体のサフィックスを含む一般名をFAM使用する必要があります。R B I BIリンクからはい、フォントのコレクションがあるため、、、およびDejaVuSansフォントを提供する必要があります。以下は私にとって効果的でした。DejaVuSansRDejaVuSansBDejaVuSansIDejaVuSansBI

mkdir -p /tmp/font/devps
cd  /tmp/font/devps
convert(){ 
  from=${1?} to=${2?}
  ttf2pt1 -a -e "$1" "$2"
  afmtodit "$2".afm textmap "$2"
}
convert /usr/share/fonts/dejavu/DejaVuSans.ttf DejaVuSansR
convert /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSansB
convert /usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf DejaVuSansI
convert /usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf DejaVuSansBI
export GROFF_FONT_PATH=/tmp/font
groff -Tps -ms >text.ps <<\!
.ps 20
.vs 24
.ds FAM DejaVuSans
.TL
Title
.AU
Author
.NH
Heading
.PP
roman \[u1E6C]
.B "bold \[u1E6C]
.I "italic \[u1E6C]
.BI "bolditalic \[u1E6C]
!
gv text.ps

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

関連情報