# DejaVu Sans Mono and upquote

\documentclass[12pt]{article}

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

\usepackage{listings}
\usepackage{dejavu}
\usepackage{upquote}

\lstset{
basicstyle=\ttfamily\footnotesize
}

\begin{document}
\lstinline|4 div 2|
\end{document}


shows 4 div 2 without the backticks. No errors or warnings in the log. Adding textcomp and using upquote in lstset instead of the separate package didn't help.

Can anyone reproduce it (since search doesn't find anything and it would be weird if I was the first who needed this character)?

And is there a workaround?

• Some months before I discovered that not many fonts contains the backticks even using XeLaTeX... I will test it with XeLaTeX to see if is a matter of font... (I think it is) Feb 18, 2018 at 12:27
• Tested and works fine with XeLaTeX and DejaVu Sans Mono... So, please wait for someone else's answer Feb 18, 2018 at 13:10
• The TS1 fonttable of dejavu Sans is missing quite a lot of glyphs, beside other \textasciigrave used by upquote. There is a grave in the font so one could add it, but this means that someone would have to recreate the tfm/enc etc. You could try literate={}{\{}}2 instead. Feb 18, 2018 at 15:01

If you look in the log file, you'll see

Missing character: There is no  in font DejaVuSansMono-tlf-ts1!


The upquote package defines  to produce \textasciigrave, which is taken from the TS1 encoded font. Unfortunately, this glyph is missing in DejaVu Mono in the TS1 encoding. We can borrow it from Vera Sans that has it (thanks to the OP for suggesting it over cmtt).

\documentclass[12pt]{article}

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

\usepackage{listings}
\usepackage{dejavu}
\usepackage{upquote}
\usepackage{etoolbox}

\makeatletter
\chardef\straightquote@code=\catcode'
\chardef\backquote@code=\catcode
\catcode'=\active \catcode=\active
\patchcmd{\@noligs}
{\textasciigrave}
{\fixedtextasciigrave}
{}{}
\newcommand{\fixedtextasciigrave}{%
\makebox[.5em]{\fontencoding{TS1}\fontfamily{fvs}\selectfont\textasciigrave}% Vera Sans
}
\catcode\lq\'=\straightquote@code
\catcode\lq\=\backquote@code
\makeatletter

\lstset{
columns=fullflexible,
keepspaces,
basicstyle=\ttfamily\footnotesize,
literate={}{{{\fixedtextasciigrave}}}1,
}

\begin{document}

\lstinline|4 div 2|

\begin{lstlisting}
4 div 2
\end{lstlisting}

\end{document}


• Thank you! Since DejaVu is based on Bitstream Vera, I modified the newcommand to just {\fontfamily{fvs}\selectfont\textasciigrave}%. 1001fonts.com/search.html?search=sans+mono&text=%60 shows that DejaVu one should be slightly wider, but it's still much closer. Feb 18, 2018 at 16:14
• @AlexeyRomanov Good idea! I'll incorporate it (with a small change). Feb 18, 2018 at 16:26
• There is an extra closing brace in the command (can't make an edit because it's too small). Feb 18, 2018 at 16:38
• @AlexeyRomanov FIxed Feb 18, 2018 at 16:40