groff
マクロを使ってms
PostScriptに出力しています。 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
フォントを提供する必要があります。以下は私にとって効果的でした。DejaVuSansR
DejaVuSansB
DejaVuSansI
DejaVuSansBI
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