更改 LaTeX 列表包呈现波浪号的方式

Changing how the LaTeX listings package renders the tilde

我正在编写一本包含大量 JAGS 建模语言代码的书。在 JAGS 中,用户可以指定数据应该来自的分布以及参数的先验。用于执行此操作的运算符是代字号 ~。例如

model{
  for(i in 1:n){
    speed[i] ~ dnorm(mu, tau)
  }

  mu ~ dnorm(0, 0.000001)
}

我正在使用非常棒的 listings 包对书中的代码进行格式化。但是,我希望波浪字符的格式与此页面上的格式相同 - 以文本的 "height" 为中心。这是我从列表中得到的

我假设有一个操作员部分,但我找不到。

波浪号可以使用另一种字体:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{listings}
\lstset{
        basicstyle=\ttfamily,
        literate={~}{{\fontfamily{ptm}\selectfont \textasciitilde}}1
}


\begin{document}

\begin{lstlisting}
model{
  for(i in 1:n){
    speed[i] ~ dnorm(mu, tau)
  }

  mu ~ dnorm(0, 0.000001)
}
\end{lstlisting}


\end{document}