LuaTeX 字形節點:如何找出連字的元件

LuaTeX 字形節點:如何找出連字的元件

表示luatex連字的字形節點有一個components類型字段node,該字段應該「指向連字組件」。我無法理解如何使用此連結獲取組件,任何幫助將不勝感激。

對於具有固定程式碼(U+FB00 到U+FB04)的「標準」連字ff、fi、fl、ffi、ffl 來說,很容易製作一個表格來解決問題,但是像ct 這樣不太常見的連字呢?

答案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 插槽的連字的無意義內容,但它有助於閱讀簡單的情況

相關內容