使用 Times 字体时使 pdflatex 输出 UTF-8 可复制粘贴

使用 Times 字体时使 pdflatex 输出 UTF-8 可复制粘贴

我想使用Adobe Times Roman 字体或其等效字体(如 URW Nimbus Roman 和基于它的字体),编译为pdflatexPDF——最初的意图是通过使用内置字体使 PDF 更小。有问题的文档是波兰语,并使用 UTF-8 输入编码。我希望 PDF 是可复制粘贴结果为 UTF-8,适用于罗马系列和打字机系列(用于代码列表)。

不幸的是,有哪些好的方法可以使 pdflatex 输出可复制和粘贴?可以工作,至少不能作为\usepackage{times}切换到罗马字体的方式。

以一个示例文档为例:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{times}
%\usepackage{lmodern}

\input glyphtounicode
\pdfgentounicode=1
%\usepackage{cmap}

\begin{document}
\noindent
\rmfamily
rmfamily: zażółć gęsią jaźń \\
\ttfamily
ttfamily: zażółć gęsią jaźń \\
\end{document}

结果并不是像无法从我的 PDF 中复制粘贴。知道原因吗?但是,一些波兰字符的复制方式很奇怪,就像预先组合的一样:基本字符和重音符号(装饰)是分开的……并且它们中的任何一个都可能超出文本流。

对于示例文档,pdftotext结果(和复制粘贴的结果)是:

˙ ce ˛ z´
rmfamily: zazół´ g˛ sia ja´ n
ttfamily: za˙ół´ g˛sia ja´´
財經˛

1

如果我从 切换timeslmodern(拉丁现代字体),并且大概在切换到时cm-super也会得到正确的结果:

rmfamily: zażółć gęsią jaźń
ttfamily: zażółć gęsią jaźń

1

答案1

您可以使用 Times 字体TeX Gyre Termes

\documentclass{article}
\usepackage{tgtermes}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\input glyphtounicode
\pdfgentounicode=1

\begin{document}
\noindent
\rmfamily
rmfamily: zażółć gęsią jaźń \\
\ttfamily
ttfamily: zażółć gęsią jaźń \\
\end{document}

在此处输入图片描述

复制并粘贴给出.pdf以下结果:

rmfamily: zażółć gęsią jaźń
ttfamily: zażółć gęsią jaźń

答案2

添加到斯韦雷的回答使用 TeX Gyre Termes (tgtermes包 ):它不适用于我\ttfamily/即打字机字体。我从(版本 0.12.4)\texttt{}获得以下信息:pdftotext

rmfamily: zażółć gęsią jaźń
ttfamily: za»óª¢ g¦si¡ ja¹«

我浏览过LaTeX 字体目录并找到了以下解决方案——使用TXTT 字体对于 ttfamily\renewcommand*\ttdefault{txtt}

\documentclass{article}

\usepackage{tgtermes}
\renewcommand*\ttdefault{txtt}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\input glyphtounicode
\pdfgentounicode=1

\begin{document}
\noindent
\rmfamily
rmfamily: zażółć gęsią jaźń \\
\ttfamily
ttfamily: zażółć gęsią jaźń \\
\end{document}

相关内容