\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
使用しても効果はありませんでした。upquote
lstset
誰かそれを再現できますか(検索しても何も見つからないので、私が最初にこの文字を必要としていたとしたら変です)?
回避策はあるのでしょうか?
答え1
ログファイルを見ると、
Missing character: There is no ` in font DejaVuSansMono-tlf-ts1!
パッケージはを生成するようにupquote
定義されており、これは TS1 エンコード フォントから取得されます。残念ながら、このグリフは TS1 エンコードの DejaVu Mono には存在しません。このグリフを持つ Vera Sans から借りることができます ( で提案してくれた OP に感謝します)。`
\textasciigrave
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}