我想使用Adobe Times Roman 字体或其等效字体(如 URW Nimbus Roman 和基于它的字体),编译为pdflatex
PDF——最初的意图是通过使用内置字体使 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
如果我从 切换times
到lmodern
(拉丁现代字体),并且大概在切换到时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}