LaTeX包用各种语言的语法高亮显示代码

Vin*_*nie 159 syntax latex highlight package

我正在寻找一个在代码上进行语法高亮的LaTeX包.例如,现在我使用verbatim块来编写代码:

\begin{verbatim}
    <html>
       <head>
           <title>Hello</title>
       </head>
       <body>Hello</body>
    </html>
\end{verbatim}
Run Code Online (Sandbox Code Playgroud)

这可以很好地显示我的文档上的代码.但是,假设我想以IDE在输出文档中的方式突出显示HTML标记?有没有可以提供帮助的套餐?

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

Chr*_*isN 153

您可以使用列表包.它支持许多不同的语言,并且有很多选项可用于自定义输出.

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}
Run Code Online (Sandbox Code Playgroud)

  • 这默认是否有颜色?在我的测试用法中我没有看到彩色输出,我不确定这是我的错误,还是仅仅是一个功能. (19认同)
  • 我在这里找到了答案:http://www.tjansson.dk/?p = 419.您只需使用lstset命令为不同的属性设置各种样式. (12认同)

Kon*_*lph 140

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

只是为了展示它,这是一个用铸造突出显示的代码:

示例代码

  • "minted"已安装并在ShareLatex和Overleaf上运行.保存自己安装Pygments的头痛;) (3认同)

rep*_*mer 21

我推荐Pygments.它接受任何语言的一段代码,并输出语法高亮的LaTeX代码.它使用fancyvrbcolor包来产生输出.我个人更喜欢它到列表包.我认为fancyvrb创造了更漂亮的结果.


Con*_*lls 11

LGrind这样做.这是一个成熟的LaTeX软件包,因为adam是牛仔并且支持许多编程语言.


Ada*_*dam 9

我会使用开发人员Konrad Rudolph提到的铸造包而不是列表包.原因如下:

上市包

列表包默认不支持颜色.要使用的颜色,你将需要包括彩包和自己与定义颜色的规则\ lstset命令作为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}
Run Code Online (Sandbox Code Playgroud)

生成以下图像:

在此输入图像描述

铸造包装

铸造的包装支持颜色,unicode和看起来很棒.但是,为了使用它,你需要有python 2.6和pygments.在Ubuntu中,您可以在终端中检查您的python版本

python --version
Run Code Online (Sandbox Code Playgroud)

你可以安装pygments

sudo apt-get install python-pygments
Run Code Online (Sandbox Code Playgroud)

然后,由于minted调用pygments,你需要像这样使用-shell-escape编译它

pdflatex -shell-escape yourfile.tex
Run Code Online (Sandbox Code Playgroud)

如果你使用像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}
Run Code Online (Sandbox Code Playgroud)

生成以下图像:

在此输入图像描述