Ответ dmckee выше, вероятно, работает. Если вы отбросите свое последнее условие, то есть разрешите изменения в коде, то есть более общее решение, которое я склонен использовать всякий раз, когда (La) TeX отображает символ как-то иначе, чем я ожидаю, это использовать \symbol
команда. Я перечислю это здесь, потому что это может быть полезно и в других ситуациях:
\newcommand{\qq}{\symbol{34}} % 34 is the decimal ascii code for "
А потом твой пример:
\begin{lstlisting}
...
print{\qq}The temperature is{\qq},Celsius,{\qq}degrees Celsius{\qq}
...
\end{lstlisting}
Обратите внимание на фигурные скобки, которые предположительно возвращают списки обратно в режим LaTeX (см. Параметр escapechars
пакета.)