在 groff ms 宏中显示轨道节点字符

在 groff ms 宏中显示轨道节点字符

我试图在 groff 中显示升序和降序轨道节点(☊ 和 ☋)的字符,但是当我将文档导出到 postscript 时,它们根本不显示。

答案1

使用 groff 将不寻常的字符放入 PostScript 文档中需要做很多工作。首先,您需要选择包含该字符的字体。谷歌搜索名称和标签统一码可以找到例如这个地点例如,它可以在 DejaVuSans-Bold 字体中找到,我的系统上恰好有 ttf 格式的字体。

您需要将 ttf 转换为 groff 想要的格式。我创建了一个目录/tmp/font/devps并在其中运行

ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold

来自ttf2pt1我系统上同名的包。这创建了文件DejaVuSans-Bold.afmDejaVuSans-Bold.pfa.他们需要更多的转化

afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold

从哪里来afmtodit的包裹groff-perlDejaVuSans-Bold现在可以通过命令从 groff 引用这个创建的文件

.ft DejaVuSans-Bold

前提是你已经告诉它在哪里可以找到它

export GROFF_FONT_PATH=/tmp/font

跑步前groff -Tps。您还需要通过输入文本中的 unicode 值来引用该字符,例如:

here \[u260A] there

(如果您的输入文件采用 utf-8 格式,您可以通过添加 groff 选项来完成此转换-K utf-8,我还没有尝试过)。这是一组对我有用的命令(您可能需要更改 ttf 文件的来源):

mkdir -p /tmp/font/devps
cd  /tmp/font/devps
ttf2pt1 -a -e /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf DejaVuSans-Bold
afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold
export GROFF_FONT_PATH=/tmp/font
groff -Tps >text.ps <<\!
.ps 20
.vs 24
.ft DejaVuSans-Bold
here \[u260A] there
!
gv text.ps

在此输入图像描述

相关内容