关于在 TeX 文件中包含源代码的问题

关于在 TeX 文件中包含源代码的问题

我想在 TeX 文件中包括一些 Sage 代码。最初我认为正确的方法是$\texttt{}$在需要包括源代码时使用,但后来我遇到了一些困难:

  1. 当我的代码包含类似的内容$2^3$并且我输入它时,\texttt{2^3}我收到了错误消息。
  2. 每当我需要直单引号时,我都会得到弯曲的单引号。

我设法通过输入 解决了第一个问题\texttt{2\textasciicircum 3},但没有找到第二个问题的解决方法,所以我开始在网上搜索。这样我就知道了listing我以前从未使用过的环境。由于 Sage 未列为列出的语言,因此我输入了 Python,但是间距不正确,输出看起来不像\texttt。所以我很疑惑:

在 LaTeX 中输入 Sage 代码的正确方法是什么?如果这个问题已经得到解答,我很抱歉,但我自己找不到它。

\documentclass{article,amsmath, amssymb}
\usepackage{listings}
\begin{document}
\lstset{language=Python}
\begin{lstlisting}
sqrt(9)
\end{lstlisting}

\end{document}

答案1

如果您想在 LaTeX 文档中使用 Sage 代码,那么您应该使用该sagetex包。根据此CTAN 文档sagetex有几个逐字相似的环境。听起来你想要这个sageverbatim环境。在使用此环境时,“...无论你输入什么都将被排版,但不会写入 .sage 文件。这允许您排版伪代码、将失败的代码或执行时间过长的代码等”。使用内置环境可让您访问 \sagetexindent,它可让您控制代码的缩进。

但是,如果您想让代码排版更加美观,那么您应该考虑复制 William Stein(Sage 背后的推动力)的 tex 文件。下载论文(www.wstein.org/papers/icms/stein-icms2010.tar.bz2),提取内容并通过 LaTeX 运行,以获得如下所示的论文输出: 在此处输入图片描述

如果您查看右侧面板,您将在汽车图像下方看到经过整理的 Sage 代码。检查文件的序言,了解他如何使用 \lstdefinelanguage{Sage}[]{Python} 在此处输入图片描述

你可以从他的论文序言开始,然后修改他的代码以满足你的需求。但是,我看不出有什么方法可以将弯曲的单引号变成直线。

相关内容