DejaVu Sans Monoと引用符

DejaVu Sans Monoと引用符
\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}

バッククォートなしで表示されます4 div 2。ログにはエラーや警告はありません。別のパッケージの代わりにinを追加してtextcomp使用しても効果はありませんでした。upquotelstset

誰かそれを再現できますか(検索しても何も見つからないので、私が最初にこの文字を必要としていたとしたら変です)?

回避策はあるのでしょうか?

答え1

ログファイルを見ると、

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

パッケージはを生成するようにupquote定義されており、これは TS1 エンコード フォントから取得されます。残念ながら、このグリフは TS1 エンコードの DejaVu Mono には存在しません。このグリフを持つ Vera Sans から借りることができます ( で提案してくれた OP に感謝します)。`\textasciigravecmtt

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

ここに画像の説明を入力してください

関連情報