如何在乳胶文档中插入代码?是否有类似的东西:
\begin{code} ... \end{code}
我真正需要的唯一东西是缩进和固定宽度字体 . 语法高亮可能很好,虽然它绝对不是必需的 .
使用Listings包 .
LaTeX标头的简单配置(在 \begin{document} 之前):
\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} 更改文档中间的默认语言 .
\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}
这是一个老问题,但我注意到没有人说过如何添加内联代码 .
您可以使用 {\tt code } 或 \texttt{ code } 添加内联代码 . 如果要格式化内联代码,那么最好自己创建命令
{\tt code }
\texttt{ code }
\newcommand{\code}[1]{\texttt{#1}}
另请注意,可以使用其他文件加载代码块
\lstinputlisting[breaklines]{source.c}
breaklines isn 't required, but I find it useful. Be aware that you' ll必须为此指定 \usepackage{ listings } .
breaklines
\usepackage{
}
minted等专用软件包依赖于Pygments进行格式化,与 listings 软件包相比具有各种优势 . 引用 minted 手册,
listings
minted
与传统包相比,Pygments提供了更优越的语法突出显示 . 例如,列表基本上只突出显示字符串,注释和关键字 . 另一方面,Pygments可以完全自定义,以突出显示源语言可能支持的任何令牌类型 . 这可能包括字符串,数字,不同类型的标识符和HTML标记等外来结构中的特殊格式序列 .
使用Minted .
它是一个使用功能强大的Pygments库在LaTeX中提供富有表现力的语法高亮显示的软件包 . 该软件包还提供了使用fancyvrb自定义突出显示的源代码输出的选项 .
它比任何其他包更加进化和可定制!
使用Pygments!
由于此处尚未提及,因此可能需要再添加一个选项,包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}
7 回答
使用Listings包 .
LaTeX标头的简单配置(在
\begin{document}
之前):您可以使用
\lstset{language=Java}
更改文档中间的默认语言 .文档中的用法示例:
这是结果:
您也可以使用逐字环境
这是一个老问题,但我注意到没有人说过如何添加内联代码 .
您可以使用
{\tt code }
或\texttt{ code }
添加内联代码 . 如果要格式化内联代码,那么最好自己创建命令另请注意,可以使用其他文件加载代码块
breaklines
isn 't required, but I find it useful. Be aware that you' ll必须为此指定\usepackage{
listings}
.minted等专用软件包依赖于Pygments进行格式化,与
listings
软件包相比具有各种优势 . 引用minted
手册,使用Minted .
它是一个使用功能强大的Pygments库在LaTeX中提供富有表现力的语法高亮显示的软件包 . 该软件包还提供了使用fancyvrb自定义突出显示的源代码输出的选项 .
它比任何其他包更加进化和可定制!
使用Pygments!
由于此处尚未提及,因此可能需要再添加一个选项,包spverbatim(无语法高亮显示):
此外,如果不需要语法高亮,则包alltt: