我试图在 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.afm
和DejaVuSans-Bold.pfa
.他们需要更多的转化
afmtodit DejaVuSans-Bold.afm textmap DejaVuSans-Bold
从哪里来afmtodit
的包裹groff-perl
。DejaVuSans-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