如何将代码插入LaTeX文档?是否有类似的东西:
\begin{code}## Heading ##
...
\end{code}
我唯一需要的是缩进和固定宽度的字体。虽然绝对不是必需的,但语法突出显示可能很好。
如何将代码插入LaTeX文档?是否有类似的东西:
\begin{code}## Heading ##
...
\end{code}
我唯一需要的是缩进和固定宽度的字体。虽然绝对不是必需的,但语法突出显示可能很好。
Answers:
使用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}
结果如下:
figure
可以实现此效果。
您还可以使用逐字记录环境
\begin{verbatim}
your
code
example
\end{verbatim}
以下是添加内联代码的方法:
您可以使用{\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}
minted
依靠Pygments进行格式化的专业化软件包(如)比该listings
软件包具有多种优势。要引用minted
手册,
与传统软件包相比,Pygments提供了出色的语法高亮显示。例如,清单基本上只突出显示字符串,注释和关键字。另一方面,Pygments可以完全自定义以突出显示源语言可能支持的任何令牌类型。这可能包括字符串,数字,不同类型的标识符以及诸如HTML标签之类的特殊构造中的特殊格式序列。
-shell-escape
指令调用乳胶的要求充其量只是对现有构建系统的较小修改,而最坏的情况是与某些用户的安全首选项不兼容。
由于此处尚未提及,因此可能值得再添加一个选项包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}