使用清单复制粘贴代码

使用清单复制粘贴代码

我希望 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}

我看过

  1. listings 包将连字符改为减号
  2. 不太相关,因为我关注的是代码,而不是评论:避免在列表评论样式中使用“减号”破折号

答案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}

相关内容