我希望 PDF 中的代码能够让别人轻松复制、粘贴和使用。目前,\lstlisting
正在将“-”转换为破折号。然后,当我将输出粘贴到 Python 解释器或 MATLAB 中时,会出现语法错误。我在这里看到的所有解决方案似乎都不起作用。
myvar = 9
myvar = myvar - 2
输出中的 '-' 最终变成 '−'。
我有以下设置
\lstset{breakatwhitespace,
language=MATLAB,
columns=fullflexible,
keepspaces,
breaklines,
tabsize=3,
showstringspaces=false,
extendedchars=true,
basicstyle=\fontfamily{pcr}\selectfont\scriptsize,
keywordstyle=\color{orange},
upquote=true}
我在用\documentclass{beamer}
我看过
- listings 包将连字符改为减号
- 不太相关,因为我关注的是代码,而不是评论:避免在列表评论样式中使用“减号”破折号
答案1
您可以使用literate
来更改可能的自动转换。在这种特定情况下,使用literate={-}{-}1
替代-
原样-
:
\documentclass{beamer}
\usepackage{listings,textcomp}
\lstset{
breakatwhitespace,
language=MATLAB,
columns=fullflexible,
keepspaces,
breaklines,
tabsize=3,
showstringspaces=false,
extendedchars=true,
basicstyle=\fontfamily{pcr}\selectfont\scriptsize,
keywordstyle=\color{orange},
upquote=true,
literate={-}{-}1}
\begin{document}
\begin{frame}[fragile]
\frametitle{A listing}
\begin{lstlisting}
myvar = 9
myvar = myvar - 2
\end{lstlisting}
\end{frame}
\end{document}