代码之家  ›  专栏  ›  技术社区  ›  Vincent Ramdhanie

LaTeX包,用于以各种语言突出显示代码的语法

  •  156
  • Vincent Ramdhanie  · 技术社区  · 17 年前

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

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

    这可以很好地在我的文档上显示代码。但是,假设我想像IDE在输出文档中那样突出显示HTML标记? 是否有一个包裹可以提供帮助?

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

    7 回复  |  直到 6 年前
        1
  •  164
  •   ChrisN    17 年前

    您可以使用 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}
    
        2
  •  156
  •   Community Mohan Dere    6 年前

    在询问a之后 similar question Ive创建了另一个使用Pygments的包,并提供了比Pygments更多的选项 texments 它被称为 minted 并且非常稳定和可用。

    为了展示它,这里有一个用caster突出显示的代码:

    Example code

        3
  •  22
  •   reprogrammer    16 年前

    我建议 Pygments 它接受任何语言的一段代码,并输出语法突出显示的LaTeX代码。使用 fancyvrb color 包装以产生其输出。我个人更喜欢它,而不是上市方案。我认为 fancyvrb 创造了更漂亮的结果。

        4
  •  11
  •   SimplyKnownAsG ConcernedOfTunbridgeWells    13 年前

    我会用 minted package 正如开发者Konrad Rudolph所提到的,而不是 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}
    

    生成以下图像:

    enter image description here

    铸造包装

    这个铸造包支持颜色、unicode,看起来很棒。然而,为了使用它,你需要python 2.6和 pygments 在Ubuntu中,您可以在终端中使用以下命令检查您的python版本

    python --version
    

    您可以使用安装pygments

    sudo apt-get install python-pygments
    

    然后,由于founder会调用pygments,您需要使用 -炮弹逃逸 像这样

    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}
    

    生成以下图像:

    enter image description here

        5
  •  10
  •   Community Mohan Dere    9 年前

    LGrind 这样做。这是一个成熟的LaTeX包,自adam还是牛仔以来就已经存在,并支持多种编程语言。

        6
  •  4
  •   Paul Biggar    16 年前

    我主要在论文中使用列表,但对于彩色输出(幻灯片),我使用分段。

        7
  •  -1
  •   okm    16 年前

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