使用 LaTex 软件包编写不同语言的代码语法突显

我正在寻找一个 LaTeX 软件包的代码语法突显。例如,现在我使用逐字记录块来编写代码:

\begin{verbatim}
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{verbatim}

这样可以很好地在我的文档中显示代码。但是,假设我想像 IDE 在输出文档中那样突出显示 HTML 标记?有什么包裹能帮上忙吗?

我想对各种语言做同样的事情,比如 Java、 C # 、 HTML、 CSS 等等。

155326 次浏览

LGrind 这样做。这是一个成熟的 LaTeX 包,从 Adam 还是牛仔的时候就有了,并且支持许多编程语言。

您可以使用 清单包。它支持许多不同的语言,并且有许多定制输出的选项。

\documentclass{article}
\usepackage{listings}


\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}

我主要在论文中使用 lstlist,但对于彩色输出(幻灯片) ,我使用 pygments。

我推荐 色素。它接受任何语言的一段代码,并输出突出显示的 LaTeX 代码的语法。它使用 Fancyvrb颜色软件包来产生它的输出。就我个人而言,我更喜欢它。我认为 Fancyvrb创建更漂亮的结果。

我建议您根据以下的 tex 代码定义您自己的包; 这将给您完全的自由

在询问 类似的问题之后,我创建了另一个使用 Pygments 的包,它比 texments提供了更多的选项。它被称为 minted,非常稳定和可用。

为了炫耀一下,这里有一段用 minted 高亮显示的代码:

Example code

我会使用从开发商 Konrad Rudolph 提到的 薄荷包装而不是 列表包裹,原因如下:

列表包裹

默认情况下,清单包不支持颜色。要使用颜色,您需要包含颜色包,并自己使用 开始命令定义颜色规则,正如 matlab 代码 给你所解释的那样。

此外,清单包不能很好地与 unicode 一起工作,但是您可以修复这些问题,如解释的 给你给你所示。

以下代码

\documentclass{article}
\usepackage{listings}


\begin{document}
\begin{lstlisting}[language=html]
<html>
<head>
<title>Hello</title>
</head>
<body>Hello</body>
</html>
\end{lstlisting}
\end{document}

产生以下影像:

enter image description here

薄荷包装

铸造包支持颜色,Unicode 和看起来棒极了。但是,为了使用它,需要使用 python 2.6和 皮格门。在 Ubuntu 中,你可以使用

python --version

你可以用

sudo apt-get install python-pygments

然后,因为 minted 调用 pygments,所以需要像下面这样用 - 炮弹-逃跑编译它

pdflatex -shell-escape yourfile.tex

如果您使用诸如 TexMaker 之类的乳胶编辑器,我建议您添加一个 user-command,这样您仍然可以在编辑器中编译它。

以下代码

\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}

产生以下影像:

enter image description here