我正在寻找一个在代码上进行语法高亮的LaTeX包。例如,现在我使用逐字块来编写代码:
\begin{verbatim}
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{verbatim}
这样可以在我的文档上显示代码。但是,假设我想以IDE在输出文档中的方式突出显示HTML标记? 是否有可以提供帮助的套餐?
我想对Java,C#,HTML,CSS等各种语言做同样的事情。
答案 0 :(得分:152)
您可以使用listings包。它支持许多不同的语言,并且有很多选项可用于自定义输出。
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
答案 1 :(得分:136)
在询问similar question之后我创建了另一个使用Pygments的包,并提供了比texments
更多的选项。它被称为minted
,非常稳定且可用。
只是为了展示它,这是一个用铸造突出显示的代码:
答案 2 :(得分:21)
答案 3 :(得分:11)
LGrind这样做。这是一个成熟的LaTeX软件包,因为adam是一个牛仔,并且支持许多编程语言。
答案 4 :(得分:9)
我会使用开发人员Konrad Rudolph提到的minted package而不是listing package。原因如下:
列出套餐
默认情况下,列表包不支持颜色。要使用颜色,您需要包含颜色包并使用 \ lstset 命令自行定义颜色规则,如针对matlab代码here所述。
此外,列表包不适用于unicode,但您可以按照here和here解释这些问题。
以下代码
\documentclass{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}
生成以下图像:
铸造包
铸造的包装支持颜色,unicode和看起来很棒。但是,为了使用它,你需要有python 2.6和pygments。在Ubuntu中,您可以使用
检查终端中的python版本python --version
您可以使用
安装pygmentssudo apt-get install python-pygments
然后,由于minted调用pygments,你需要使用 -shell-escape 来编译它
pdflatex -shell-escape yourfile.tex
如果你使用像TexMaker这样的乳胶编辑器,我建议你添加一个用户命令,这样你仍然可以在编辑器中编译它。
以下代码
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{html}
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{minted}
\end{document}
生成以下图像:
答案 5 :(得分:4)
我主要在论文中使用lstlistings,但对于彩色输出(对于幻灯片),我使用pygments代替。
答案 6 :(得分:-1)
我建议根据以下tex代码定义自己的包;这给了你完全的自由。 http://ubuntuforums.org/archive/index.php/t-331602.html