Я написал несколько подпрограмм для разбора данных шрифтов CFF.
Иногда я получаю дополнительные элементы в стеке при обработке команд hvcurveto
и vvcurveto
.
Для этих двух команд глубина стека должна быть либо
4, 5, 12, 13, 20, 21, ...
или
8, 9, 16, 17, 24, 25, ...
Для некоторых шрифтов размер стека равен 10. По некоторым причинам там есть дополнительный параметр.
Означает ли это, что я допустил ошибку при обработке предыдущих команд или дополнительные команды в стеке являются общими для шрифтов CFF?
Команды кривой находятся в подпрограмме, и кажется, что дополнительный параметр передается в подпрограмму.
Кажется, что дополнительные параметры присутствуют всякий раз, когда есть команды подсказок в середине потока CFF, а не в самом начале.