Fonts

不能在 groff -ms 中使用不同的字型系列

  • November 3, 2019

我正在使用groffms並將其輸出到 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

如果要使用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

在此處輸入圖像描述

引用自:https://unix.stackexchange.com/questions/550106