在此LaTeX文档中插入缩进的代码

如何在LaTeX文档中插入代码?比如:

\begin{code}## Heading ##
...
\end{code}

我唯一真正需要的是缩进和固定宽度的字体。语法高亮显示可能很好,尽管它绝对不是必需的。

745486 次浏览

使用listings包。

LaTeX头文件的简单配置(在\begin{document}之前):

\usepackage{listings}
\usepackage{color}


\definecolor{dkgreen}{rgb}{0,0.6,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}


\lstset{frame=tb,
language=Java,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
basicstyle={\small\ttfamily},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=true,
breakatwhitespace=true,
tabsize=3
}

你可以用\lstset{language=Java}改变文档中间的默认语言。

文档中的用法示例:

\begin{lstlisting}
// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;


public class Hello extends JApplet {
public void paintComponent(Graphics g) {
g.drawString("Hello, world!", 65, 95);
}
}
\end{lstlisting}

结果如下:

图片示例 .

您也可以使用逐字记录环境

\begin{verbatim}
your
code
example
\end{verbatim}

使用Pygments !

特殊的包,如minted,它依赖pyments来进行格式化,相比listings包提供了各种优势。引用minted手册,

与传统的包相比,pyptions提供了更优越的语法高亮显示。例如,清单基本上只突出显示字符串、注释和关键字。另一方面,pyptions可以完全自定义,以突出显示源语言可能支持的任何令牌类型。这可能包括字符串、数字、不同类型的标识符和特殊结构(如HTML标记)中的特殊格式序列。

下面是如何添加内联代码:

可以使用{\tt code }\texttt{ code }添加内联代码。如果您想格式化内联代码,那么最好创建自己的命令

\newcommand{\code}[1]{\texttt{#1}}

另外,请注意,代码块可以从其他文件中加载

\lstinputlisting[breaklines]{source.c}

breaklines不是必需的,但我发现它很有用。注意,你必须为它指定\usepackage{ 上市 }

清单包还包括\lstinline命令,它具有与\lstlisting\lstinputlisting命令相同的语法高亮显示功能(查看Cloudanger的配置详细信息)。正如在其他几个答案中提到的,还有一个薄荷包,它提供\mintinline命令。像\lstinline一样,\mintinline提供了与常规铸造代码块相同的语法高亮显示:

\documentclass{article}


\usepackage{minted}


\begin{document}
This is a sentence with \mintinline{python}{def inlineCode(a="ipsum)}
\end{document}

使用铸造

它是一个使用强大的Pygments库在LaTeX中促进表达语法高亮显示的包。该包还提供了使用fancyvrb自定义突出显示的源代码输出的选项。

它比任何其他包都更进化和可定制!

由于这里还没有提到它,可能值得再添加一个选项,package spverbatim(没有语法高亮显示):

\documentclass{article}
\usepackage{spverbatim}


\begin{document}


\begin{spverbatim}
Your code here
\end{spverbatim}


\end{document}

此外,如果不需要语法高亮显示,则打包alltt:

\documentclass{article}
\usepackage{alltt}


\begin{document}


\begin{alltt}
Your code here
\end{alltt}


\end{document}

铸造,无论是来自GitHub还是CTAN,综合TeX档案网络,都可以在在背面, TeX Live和MiKTeX中工作。

它需要安装Python包Pygments;这在上面两种源代码的文档中都有解释。尽管pyptions标榜自己是Python语法突出显示工具,但Minted保证覆盖了数百种其他语言。

例子:

\documentclass{article}
\usepackage{minted}
\begin{document}


\begin{minted}[mathescape, linenos]{python}


# Note: $\pi=\lim_{n\to\infty}\frac{P_n}{d}$
title = "Hello World"


sum = 0
for i in range(10):
sum += i


\end{minted}


\end{document}

输出:

enter image description here

如果你的代码是Python的,我不需要安装Python包,一个非常简单的方法是:

\documentclass[11pt]{article}
\usepackage{pythonhighlight}


\begin{document}


The following is some Python code


\begin{python}
# A comment
x = [5, 7, 10]
y = 0


for num in x:
y += num
    

print(y)
\end{python}


\end{document}

,看起来像: enter image description here < / p >

不幸的是,这只适用于Python。