How to typeset this Euro sign from Cochineal font

Neither the latex format nor the font package itself declares which subset of TS1-encoding the font supports, and so a rather conservative default (9) is used which means that the euro is faked with a C and an equal sign.

You can set the subset number, but someone will have to check which one is actually correct (the 7 in the code below is rather conservative too). At best ask the maintainer of the font. He can then make a request that the setting is added to the latex format (it contains already a long list for various fonts).

\documentclass{report}
\usepackage{cochineal} 
\usepackage[T1]{fontenc}
\DeclareEncodingSubset{TS1}{Cochineal-*}{7} %number should be smaller than 8
\begin{document}
Text in Cochineal font but € symbol is ugly 1,99€
\end{document}

enter image description here


This seems to be a bug in the package, which I'll mention to the author, but what you can do in the meantime is

% !TEX encoding = UTF-8 Unicode
\documentclass{report}
\usepackage[TS1]{fontenc}
\usepackage{cochineal}
\renewcommand{\texteuro}{{\fontencoding{TS1}\fontfamily{Cochineal-LF}\selectfont \char191 }}

\begin{document}
Text in Cochineal font, and the € symbol is no longer ugly 1,99€

\texteuro 

\end{document}

enter image description here


As with a great many questions about legacy 8-bit fonts, you can solve the problem by loading the font in a modern format from LuaLaTeX.

\documentclass{report}
\tracinglostchars=2
\usepackage{fontspec}

\setmainfont{Cochineal}[Scale=1.0]

\begin{document}
Text in Cochineal font but € symbol is ugly 1,99€
\end{document}