由于某种原因,我真的很难表达我的问题,所以请允许我提前道歉。我可能没有从正确的角度来解决这个问题。
我在 XeTeX 中工作(现在改用 LuaTeX 已经太晚了)。我选择的字体存在连字显示不正确的问题,但从生成的 PDF 中复制粘贴时会出现乱码。这也使得 PDF 的搜索难度大大降低,因为例如,由于连字“fl”,无法找到“flow”。
经过大量的谷歌搜索,我发现目前还没有合适的解决方案来解决这个问题。一个不太理想的选择是使用包accsupp
,并为 XeTeX 和 PDF 提供不同的字符串。例如,这有效:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Minion Pro}
\usepackage{accsupp}
\newcommand\ligfl{\BeginAccSupp{method=escape,ActualText=fl}fl\EndAccSupp{}}
\begin{document}
flow vs. {\ligfl}ow
\end{document}
(在有人建议之前,我实际上并没有使用 Minion Pro,所以这\usepackage{MinionPro}
对我来说不是最佳选择。)
一个选项是对“fi”、“ffi”、“fl”和“ffl”进行查找和替换,将它们更改为上述命令\ligfl
。这是可行的,我可能不得不求助于它,但在我这样做之前,有没有比上述硬编码更灵活、更优雅的方法来实现它?
我理想情况下想做的是:
激活“可连字符”对或三元组,并让每个字符
fl
自动解释为{\ligfl}
。我可能搜索错误,但似乎没有办法做到这一点;或者使用某种预处理器或类似程序,在文档构建之前将所有
fl
s 更改为s。(但实际上,我认为我会很难接受这个选项,因为我正在使用 LyX。){\ligfl}
或者,当然还有我还没有想到的第三种选择。
任何帮助将不胜感激。
答案1
您可以禁用连字符并尝试。不过对我来说,这种方法很有效,现在似乎没有任何问题。
\DisableLigatures[f]{encoding = *, family = *}
– 将其纳入序言中。
希望对你有帮助。