特殊字符、cmap、将 pdf 文本复制粘贴到文本编辑器

特殊字符、cmap、将 pdf 文本复制粘贴到文本编辑器

我在处理特殊字符时遇到了严重的问题。当我将文本从我的 pdf 文件复制粘贴到其他一些文本程序时,我得到的结果是:t˛e klas˛e zwi˛azków n˛a而我期望的是:tę klasę związków ną

我没有 MWE(我正在尝试但无法重现它,我的论文很大并且有巨大的 .cls 文件),所以我最重要的是:

\RequirePackage[resetfonts]{cmap}
\RequirePackage{polski}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage[polish]{babel}

我也尝试了- 结果相同。此外 - 每次编译\RequirePackage{cmap}之前\RequirePackage[resetfonts]{cmap}我都会删除所有临时文件,以确保 latex 生成新文件而不是基于旧文件。

有什么想法我能用它做什么吗?请帮帮我。

我的字体:\RequirePackage{uarial}。我还检查了编辑器设置,在 TexMaker 中我有正确的字体utf8


MWE(我需要 newtxttext,除非你知道一些类似的东西,它不会破坏所有特殊字符,字体看起来像 Times New Roman 的更好版本,我的论文中需要这样的东西):

\documentclass{report}

\input{glyphtounicode} \pdfgentounicode=1
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage{tgheros}
\usepackage{newtxtext, newtxmath}

\begin{document}
ąąąęęę ąą ę żż ąąę sprawiają napędzający 
\end{document}

答案1

newtxtext 重新定义了 \k 命令并将其恢复为 OT1 版本。我看不出有什么理由这样做,因为字体有字形。我认为应该向作者报告这个问题。

如果我恢复 T1 定义,您的字符复制粘贴就没问题。我使用标准 babel + polish 而不是 polski,因为我没有时间和意愿检查 polski 中的所有 catcode 更改和重新定义是否有副作用。

\documentclass{report}

\input{glyphtounicode} \pdfgentounicode=1
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tgheros}
\usepackage[polish]{babel}
\usepackage{newtxtext,newtxmath}
\AtBeginDocument{\DeclareTextComposite{\k}{T1}{a}{161}}
\begin{document}
ąąęęę ąą ę żż ąąę sprawiają napędzający
\sffamily
ąąęęę ąą ę żż ąąę sprawiają napędzający
\end{document}

答案2

您可以使用TeX Gyre Termes匹配的系统字体TeX Gyre Termes Math(使用unicode-math包并用xelatex进行编译)。

TeX Gyre 字体示例:

TeX Gyre 采样器

其中一些还有自己匹配的数学字体。

平均能量损失

\documentclass{report}

%\usepackage{fontspec}% called by unicode-math
\usepackage{unicode-math}
\setmainfont{TeXGyreTermesX}
\setmathfont{TeX Gyre Termes Math}

\newfontface\fonta{TeX Gyre Adventor}
\newfontface\fontb{TeX Gyre Bonum}
%\newfontface\tbm{TeX Gyre Bonum Math}
\newfontface\fontc{TeX Gyre Chorus}
\newfontface\fontd{TeX Gyre Cursor}
%\newfontface\tdvm{TeX Gyre DejaVu Math}
\newfontface\fonte{TeX Gyre Heros}
\newfontface\fontf{TeX Gyre Pagella}
\newfontface\fontg{TeX Gyre PagellaX}
\newfontface\fonth{TeX Gyre Schola}
%\newfontface\thm{TeX Gyre Schola Math}
\newfontface\fonti{TeX Gyre Termes}
%\newfontface\tim{TeX Gyre Termes Math}
\newfontface\fontj{TeX Gyre TermesX}
%\usepackage{polski}
%\usepackage{newtxmath}

\newcommand\eg{ąąąęęę ąą ę żż ąąę sprawiają napędzający}
\newcommand\sample[2]{\bigskip\par #1 #2\\\eg}

\begin{document}
\large
\sample{\fonta}{TeX Gyre Adventor}
\sample{\fontb}{TeX Gyre Bonum}
\sample{\fontc}{TeX Gyre Chorus}
\sample{\fontd}{TeX Gyre Cursor}
\sample{\fonte}{TeX Gyre Heros}
\sample{\fontf}{TeX Gyre Pagella}
\sample{\fontg}{TeX Gyre PagellaX}
\sample{\fonth}{TeX Gyre Schola}
\sample{\fonti}{TeX Gyre Termes} $x^2 + y^2 = z^2\cos^2\theta$
\sample{\fontj}{TeX Gyre TermesX}

\end{document}

相关内容