Нельзя использовать разные семейства шрифтов в groff -ms

Небольшой исполняемый файл:busyboxможет анализировать форматы даты с опцией -D.
Формат даты файлов%y%m%d%H%M

$ busybox date -uD %y%m%d%H%M -d "1804040400"
Wed Apr  4 04:00:00 UTC 2018

Использование этого в awk:

$ awk 'BEGIN{  a="busybox date -uD %y%m%d%H%M +%s -d " }
         { b=a $6  ; b | getline sd ; close(b)
           b=a $NF ; b | getline ed ; close(b)
           print(ed,sd,ed-sd)
         }' < <(paste infile[12])

1522814400 1522713600 100800

Примечание. :Использование опции -uпозволит избежать некоторых эффектов летнего времени и местных эффектов. В большинстве случаев это не меняет окончательной разницы, поскольку обе команды даты выполняются с одной и той же средой TZ.

4
03.11.2019, 08:14
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

enter image description here

3
27.01.2020, 20:59

Теги

Похожие вопросы