如何用LaTeX创建不可见但可复制的文本?
解决LaTeX中PDF显示文本与复制文本不一致的问题
你需要的这种“所见非所得”的PDF效果,LaTeX里用accsupp包就能完美实现,完全不会出现你之前用白色文本导致的排版怪异问题。
具体实现代码
\documentclass{article} \usepackage{accsupp} \begin{document} Here is some\BeginAccSupp{ActualText={ secret message}} example text.\EndAccSupp{} \end{document}
原理说明
accsupp包专门用来控制PDF文档里的辅助实际文本(ActualText)——也就是复制时会提取的内容,和屏幕显示的内容完全分离:
\BeginAccSupp{ActualText={ secret message}}定义了复制时会被提取的额外内容- 中间的
example text.是PDF实际显示的内容 \EndAccSupp{}结束这个内容块
编译后,PDF显示的就是Here is some example text.,但选中复制后得到的就是Here is some secret message example text.,排版完全正常,不会有文本重叠的问题。
为什么你之前的方法不行?
你用\makebox[0pt]{\textcolor{white}{ secret message}}的思路是对的,但零宽度盒子里的文本虽然看不见,仍然会占据排版空间(或者和后面的文本重叠),导致显示错乱。而accsupp是从PDF的底层文本结构入手,根本不会在排版流里插入额外内容,自然没有这个问题。
内容的提问来源于stack exchange,提问作者HmmmBeee
相关产品推荐
相关产品推荐

