将编程代码添加到LaTex / LyX中


10

也许我只是很厚,但是我找不到任何明智的方法来简单地将我的(python)代码粘贴到latex中而不会丢失所有缩进信息(对于python来说很重要)。

有人有什么好主意吗?我并不担心语法高亮;我想要的只是我的标签键!

Answers:


13

我最喜欢的环境 崛起 。我用它来输入整个源文件,例如:

\inputminted[linenos,fontsize=\scriptsize]{python}{script.py}

您也可以在不输入文件的情况下使用它,更重要的是,定义缩进量 鲸吞 粘贴一次:

\newminted{python}{gobble=4,linenos,fontsize=\scriptsize}
\begin{pythoncode}
    print('I am a Python script')
\end{pythoncode}

这样你的LaTeX仍然很好地缩进,但你的逐字代码却没有。这也提供了语法高亮,我知道你提到的你不感兴趣。只是不要定义语言。



2

我会去的 minted正如fideli建议的那样,但是要注意这一点很好 listings,这是一个纯乳胶解决问题的方法。

minted 源于 Pygments来做 ,用Python编写的源荧光笔。 minted 以乳胶桥为基础的coimes \write18,和 texments 为Pygments提供一个。没有任何缺点 minted 与我所知道的Pygments相比:也许两者将在某个时刻合并。


1

要使用列表包,您必须在序言中包含该包并加载必要的语言:

\usepackage{listings}
\lstloadlanguages{Python}

在文档中设置一些选项:

\lstset{language=Python,tabsize=2}

...然后你可以内联片段:

\begin{lstlisting}
  print ("Hello, World!")
\end{lstlisting}

...或从文件中读取它们:

\lstinputlisting[firstline=10,lastline=20]{Hello.py}

...或者内联编写代码: \lstinline!print ("Hello, World!")!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.