# Make pdflatex output UTF-8 copy-pasteable when using Times font

I would like to use Adobe Times Roman font or its equivalent (like URW Nimbus Roman and fonts based on it), compiling with pdflatex to PDF -- the original intent was to have PDF smaller by using built-in fonts. The document in question is in Polish, and uses UTF-8 input encoding. I would like the PDF to be copy-and-pasteable with result in UTF-8, for both roman family and typewriter family (for code listing).

Unfortunately neither of solutions in What are good ways to make pdflatex output copy-and-pasteable? works, at least not with \usepackage{times} as a way to switch to Roman-like font.

Take an example document:

\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}


The result is not an unrecognizable mess of symbols as was in Can't copy-paste from my PDF. Any idea why?, but some of Polish characters are copied in a strange way, as if precomposed: with base character and accent (decoration) separate... and either of them can be out of text flow.

For the example document the pdftotext result (and copy'n'paste result) is:

˙ c e ˛ z´
rmfamily: zazół´ g˛ sia ja´ n
ttfamily: za˙ół´ g˛sia ja´´
z c e ˛
zn

1


If I switch from times to lmodern (Latin Modern font), and presumably also when switching to cm-super I get the correct result:

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

1

• First time I've seen this without the brackets around glyphtounicode. AFAIK it's a file and thus it should be {glyphtounicode}. – henry Apr 17 '15 at 18:40
• @henry If I use \input{glyphtounicode}, my code below won't work anymore. The copy-and-past will be gobbled. – Sverre Apr 17 '15 at 18:55
• @Sverre ... woah. That is the first time I read of this happening so either something is not working right and/or I am way out of my depth here. Seeing how you and egreg talking about this, the latter is certainly true. – henry Apr 18 '15 at 8:23
• @henry I'm as puzzled as you are. This hasn't made a difference for me before, but for some reason it does here. I might open a separate question about it. – Sverre Apr 18 '15 at 12:40
• Btw: It's 2015 and we have XeTeX and LuaTeX: No need to use pdfTeX with Unicode anymore, use engines that support Unicode directly. – Martin Schröder Apr 21 '15 at 19:24

You can use the Times font 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}


Copy and paste from the .pdf gives this result:

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

• Or newtxtext and the accompanying newtxmath for math symbols. – egreg Apr 17 '15 at 18:38
• @egreg If I use newtxtext, I get this when I copy-and-paste from the .pdf: zażółć g˛esi˛a jaźń. It doesn't cope with the ogonek glyphs, in other words. – Sverre Apr 17 '15 at 18:49

Adding to Sverre's answer of using TeX Gyre Termes (tgtermes package): it doesn't work for me with \ttfamily / \texttt{} i.e. typewriter fonts. I get the following from pdftotext (version 0.12.4):

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


I have browsed The LaTeX Font Catalogue and found out the following solution -- use TXTT font for ttfamily with \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}

• You seem to be using an extremely old version of pdftotext, since the current version is 3.04. Running pdftotext -enc UTF-8 [PDF-file] on the output file of my code gives me rmfamily: zażółć gęsią jaźń ttfamily: zażółć gęsią jaźń. – Sverre Apr 18 '15 at 15:03
• @Sverre: When using evince 3.10.3 copy'n'paste gives me without TXTT: rmfamily: zażółć gęsią jaźń tt❢❛♠✐❧2✿ 3❛➺ó➟➣ ❣➛s✐→ ❥❛➵➠ – Jakub Narębski Apr 18 '15 at 15:08
• Copy-and-paste from my output file with evince gives me rmfamily: zażółć gęsią jaźń ttfamily: zażółć gęsią jaźń. You may want to update your TeX packages or something. – Sverre Apr 18 '15 at 15:17