表示luatex
连字符的字形节点具有一个components
类型的字段node
,该字段应该“指向连字符组件”。我无法理解如何使用此链接获取组件,任何帮助都将不胜感激。
对于具有固定代码(U+FB00 到 U+FB04)的“标准”连字 ff、fi、fl、ffi、ffl,很容易制作一个表格来解决问题,但对于不太常见的连字如 ct、ft 等呢?
答案1
它是一个节点列表的头部,所以看起来(对于 ff)好像你有一个带有两个 f 的 hbox
\documentclass{article}
\begin{document}
\setbox0\hbox{fish diff --- abc}
\directlua{
glyphn=node.id('glyph')
h=tex.getbox(0)
print('\string\n=====')
for n in node.traverse_id(glyphn,h.list) do
if (n.components) then
print(n.char .. ' ' .. utf8.char(n.char))
for nn in node.traverse_id(glyphn,n.components) do
print('>> ' .. nn.char .. ' ' .. utf8.char(nn.char) )
end
end
end
print('\string\n=====')
}
\end{document}
印刷:
=====
64257 fi
>> 102 f
>> 105 i
64256 ff
>> 102 f
>> 102 f
8212 —
>> 45 -
>> 45 -
>> 45 -
=====
fi
显示和ff
的组件的字形编号---
我添加了字符和数字的打印,尽管这会打印出使用非 Unicode 插槽的连字符的无意义内容,但它有助于阅读简单的情况