很长一段时间以来,我都遇到一个问题,即从 PDF 中复制和搜索有点困难,因为连字符无法正确翻译。我正在使用 XeLaTeX 和 Libertine/Biolinum。
我是一个简单的用户,所以我尝试了在互联网上找到的解决方法(使 Linux Libertine 中的连字符可复制(和可搜索)-使用 XeTeX 的 \pdfglyphtounicode-PDF 搜索能在 XeLaTeX 文档中找到带有连字符的单词吗?),但这一切都无济于事。
这是我的 MWE
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass{scrreprt}
\usepackage{fontspec}
%\defaultfontfeatures{Ligatures=Historic}
%\setmainfont{Linux Libertine O}
\usepackage{libertine}
\begin{document}
fluffier soufflé fisticuffs fb fh ffh fj ffj fk ffk ft fft tt Qu Th ch ck ct
\end{document}
哪个渲染
你的源检查
对于上述情况以及
你有源icu检查
当我使用历史连字符时。
使用\input{glyphtounicode}
解决方法我得到:
未定义控制序列。l.7 \pdfglyphtounicode{A}{0041}
使用\usepackage[t1]{fontenc}
我得到:
/usr/local/texlive/2014/texmf-dist/tex/latex/base/fontenc.sty:100: LaTeX 错误:编码方案“t1”未知。
请参阅 LaTeX 手册或 LaTeX Companion 以获取解释。
输入 H 即可获得紧急帮助。
l.100 \fontencoding\encodingdefault\selectfont
尝试其他字体显示出非常复杂的结果,因此,虽然问题显然可能出在字体上,但是我可以做些什么来解决这个问题并保留连字符?
类似上述内容
\input{glyphtounicode}
\pdfglyphtounicode{f_f}{FB00}
我可以手动“翻译”连字 - 但上述方法对我来说不起作用。
答案1
尝试\XeTeXgenerateactualtext=1
在文档开头添加。
(如果我没记错的话,我认为这需要 TeX Live 2016 或更高版本的 XeTeX,或者其他发行版中的等效版本,例如 MikTeX;并且复制/粘贴的结果还取决于所使用的 PDF 阅读器,因为并非所有 PDF 查看器都支持 ActualText 注释。)