如何在luacode包的luacode环境中使用命令\pdfextension?

如何在luacode包的luacode环境中使用命令\pdfextension?

例如,当我尝试在我的文档中编译此代码时:

\begin{luacode}
\pdfextension literal direct{/Span <</ActualText (First paragraph on page one)>> BDC}
tex.print("my text")
\pdfextension literal direct{EMC}
\end{luacode}

我对文档的编译有一个问题。

如何\pdfextension在 Lua 代码中使用该命令?

答案1

我将您在评论中的示例翻译为下面可编译的内容。

但 ...

您使用了错误的回调。如果您查看 pdf,您会看到类似以下内容:

%PDF-1.5
%ÌÕÁÔÅØÐÄÆ
/Span <</ActualText (test)>> BDC EMC 3 0 obj
<< /Length 205 >>        

这意味着您的 BDC 运营商已结束外部页面流。pdf 已损坏。

文档对回调的描述如下:

每当 LuaTEX 准备将内容移至主垂直列表时,都会调用此回调。您可以使用此回调对页面构建阶段进行专门的操作,例如拼版或列平衡。

\documentclass{article}
\usepackage{luacode}
\pagestyle{empty}
\begin{luacode}
pdf.setcompresslevel(0)
b=0
function f(a)
 texio.write_nl("Value "..a)
 if a=="new_graf" then
  if b%2==0
  then
   pdf.print ("direct","/Span <</ActualText (test)>> BDC ")
  else
   pdf.print ("direct","EMC ")
  end
  b=b+1
 end
end
luatexbase.add_to_callback("buildpage_filter",f,"filter")
\end{luacode}

\begin{document}
 paragraph one

 paragraph two
\end{document}

相关内容