(内部)PDF 查看器错过 LaTeX 生成的 PDF 中的选定字母

(内部)PDF 查看器错过 LaTeX 生成的 PDF 中的选定字母

最近,我将 LaTeX 生成的 PDF 上传到使用内部 PDF 查看器 (crocodoc) 的教育网站。然而,在显示时,许多字母缺失。据我所知,缺失的主要是字母“f”。

我在序言中写了以下代码:

\documentclass[11pt,a4paper]{article}

\usepackage[utf8]{inputenc}

\usepackage{fullpage}   
\usepackage[T1]{fontenc}  
\usepackage{lmodern}  
\usepackage[linktoc=none]{hyperref}  
\usepackage{caption}  
\usepackage{subcaption}  
\usepackage{amsmath,amssymb,bm, accents}  
\usepackage{pgfplots}

\usepackage{parskip}

知道什么可能导致此显示错误吗?

答案1

试试这个:在你的序言中,放置这段代码

\begingroup
\catcode`\_=12
\pdfglyphtounicode{f_f}{0066 0066}
\pdfglyphtounicode{f_i}{0066 0069}
\pdfglyphtounicode{f_l}{0066 006C}
\pdfglyphtounicode{f_f_i}{0066 0066 0069}
\pdfglyphtounicode{f_f_l}{0066 0066 006C}
\endgroup

它不会造成伤害,而且可能会有所帮助。如果它不起作用……这就是生活。如果它有效,它会告诉 PDF 阅读器软件如何查找某些连字符。

从历史上看,ff 连字符是一个特定字符 ff,具有自己的 unicode 点。fi 也一样。但在现代 Open Type 方法中,连字符名称可能是 f_f 和 f_i,并且没有特定的代码点。软件应该能够理解。

答案2

小写字母“f”是许多连字符的一部分,即特殊字符组合,如“fi”或“ffi”。也许这就是导致问题的原因。您可以通过手动抑制连字符进行测试:

affinity        % should give a ligature
af{}f{}inity    % should not give a ligature

如果第二个版本中的字母出现,您可以使用该microtype包全局抑制连字:

\usepackage{microtype}
\DisableLigatures{encoding = *, family = * }

更新:我阅读了您的回答/评论,并在此评论,因为我遇到了完全相同的帐户合并问题;)也许对于后人来说,如果您在进行测试后(无论何时)报告结果可能会很有用。

相关内容