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

时间:2010-07-04 15:13:21

标签: latex

如何将代码插入LaTeX文档?是否有类似的东西:

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

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

9 个答案:

答案 0 :(得分:560)

使用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}

结果如下:

Example image

答案 1 :(得分:133)

您也可以使用逐字环境

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

答案 2 :(得分:104)

以下是添加内联代码的方法:

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

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

另请注意,可以使用

从其他文件加载代码块
\lstinputlisting[breaklines]{source.c}

breaklines不是必需的,但我发现它很有用。请注意,您必须为此指定\usepackage{ listings }

答案 3 :(得分:30)

minted等专门的程序包依赖于Pygments进行格式化,与listings程序包相比具有各种优势。引用minted手册,

  

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

答案 4 :(得分:10)

使用Minted

这是一个使用功能强大的Pygments库在LaTeX中提供富有表现力的语法高亮显示的软件包。该软件包还提供了使用fancyvrb自定义突出显示的源代码输出的选项。

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

答案 5 :(得分:5)

Minted可在Overleaf,TeX Live和MiKTeX中使用。

示例:

\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

答案 6 :(得分:4)

使用Pygments

答案 7 :(得分:4)

由于此处未提及,可能值得再添加一个选项,包spverbatim(不突出显示语法):

A 1    2   7 
B N    5   N 
C 4    N   N 
D N    N   9

此外,如果不需要突出显示语法,请打包alltt

awk

答案 8 :(得分:2)

如果您的代码是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

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