Skip to content

Whatsit inside discretionary #317

@jbezos

Description

@jbezos

Sorry for this not-so-minimal example, but the error is raised only in very specific cases. I think I was able to find the what but not the where (reledmac or luaotfload?). The problem seems to be a PDF whatsit with an /ActualText is being moved to a discretionary (to make sure the cluster is correctly interpreted by PDF readers) in the text प्रजित्य्.

\documentclass{article}

\directlua{

function test (head)
  texio.write_nl('==== ') % .. g)
  texio.write_nl('')
  for item in node.traverse(head) do
    if item.id == node.id'glyph' then
      texio.write('[' .. item.char .. ']')
    elseif item.id == 8 and item.subtype == 16 then 
      texio.write('((' .. item.data .. '))')
    elseif item.id == node.id'disc' then
      texio.write(' [[[')
      test(item.replace)
      texio.write(' ]]] ')
    else
      texio.write('[' .. item.id .. ':' .. (item.subtype or '?') .. ']')
    end
  end
  return head
end

}

\input{loadhyph-sa.tex}
\usepackage{fontspec}
\setmainfont[Renderer=Harfbuzz,Script=Devanagari,Language=Sanskrit]{Noto Serif Devanagari}  

\usepackage{reledmac}
\newcounter{stanzanum}
\Xstanza
\Xarrangement[]{paragraph}

\begin{document}

\beginnumbering
\pstart
\edtext{ddddd{sambandhinīh}eeeee}{\Cfootnote{aaaa{ प्रजित्य्} bbbb \the\language}} aparārdhe
vaksyati. 
\pend
\endnumbering

\directlua{

luatexbase.add_to_callback("pre_linebreak_filter", test, "testv")

}

\end{document}

An excerpt of the log is (two runs may be necessary):

Inserting `testv' in `pre_linebreak_filter'.
==== 
[9:?][0:3][9:?][12:0][48][12:0][100][100][100][100][100][115][97][109] [[[
==== 
 ]]] [98][97][110][100] [[[
==== 
 ]]] [104][105][110][299] [[[
==== 
 ]]] [104][101][101][101][101][101][14:0][12:0][13:1][93][13:3][12:0][97][97][97
][97][12:13] [[[
==== 
[1179960]((/Span<</ActualText<FEFF091C093F>>>BDC))[1180211][2332]((EMC)) ]]]  [[
[
==== 
 ]]] [1180320][13:0][2351][2381][12:13][98][98][98][98][12:13][48][14:0][14:2][1
2:15]
! error:  (linebreak): invalid node with type whatsit and subtype 16 found in di
scretionary
!  ==> Fatal error occurred, no output PDF file produced!

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions