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

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

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

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

有帮助吗?

解决方案

您可以使用商品详情套餐。它支持许多不同的语言,并且有很多选项可用于自定义输出。

\documentclass{article}
\usepackage{listings}

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

其他提示

在询问类似问题后,我<!>#8217;已经创建了另一个使用Pygments的包,并提供了比texments更多的选项。它被称为 minted 并且非常稳定且可用。

只是为了展示它,这里<!>#8217;一个用铸造突出显示的代码:

我建议 Pygments 。它接受任何语言的一段代码,并输出语法高亮的LaTeX代码。它使用 fancyvrb color 包以产生其输出。我个人更喜欢它到列表包。我认为 fancyvrb 可以创造更漂亮的结果。

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

我会使用铸造包开发人员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}

生成以下图像:

铸造包

铸造的包装支持颜色,unicode和看起来很棒。但是,为了使用它,您需要使用python 2.6和 pygments 。在Ubuntu中,您可以使用

检查终端中的python版本
python --version

您可以使用

安装pygments
sudo 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}

生成以下图像:

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

我建议根据以下tex代码定义自己的包;这给了你完全的自由。 http://ubuntuforums.org/archive/index.php/t-331602。 HTML

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top