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

Syntax LaTeX包,用于各种语言中代码的语法突出显示,syntax,package,latex,highlight,Syntax,Package,Latex,Highlight,我正在寻找一个LaTeX包,它可以在代码上突出显示语法。例如,现在我使用verbatim块来编写代码: \begin{verbatim} <html> <head> <title>Hello</title> </head> <body>Hello</body> </html> \end{verbatim} \begin{

我正在寻找一个LaTeX包,它可以在代码上突出显示语法。例如,现在我使用verbatim块来编写代码:

\begin{verbatim}
    <html>
       <head>
           <title>Hello</title>
       </head>
       <body>Hello</body>
    </html>
\end{verbatim}
\begin{verbatim}
你好
你好
\结束{逐字记录}
这可以很好地在我的文档上显示代码。但是,假设我想像IDE在输出文档中那样突出显示HTML标记有没有可以帮助您的软件包?

我希望对各种语言(如Java、C#、HTML、CSS等)也能这样做。

就是这样做的。这是一个成熟的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}
\documentclass{article}
\usepackage{listings}
\开始{document}
\开始{lstlisting}[language=html]
你好
你好
\结束{lstlisting}
\结束{document}

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

我推荐。它接受任何语言的一段代码,并输出语法代码。它使用和包来生成其输出。我个人更喜欢它而不是上市包。我认为创建的结果要漂亮得多。

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

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

为了炫耀一下,这里有一段代码用minted突出显示:

我将使用开发人员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}
\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}
您可以使用安装pygments

sudo apt-get install python-pygments
然后,由于minted调用pygments,您需要像这样使用-shell转义来编译它

pdflatex -shell-escape yourfile.tex
如果您使用TexMaker之类的latex编辑器,我建议您添加一个用户命令,这样您仍然可以在编辑器中编译它

下面的代码

\documentclass{article}
\usepackage{listings}

\begin{document}
\begin{lstlisting}[language=html]
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>Hello</body>
</html>
\end{lstlisting}
\end{document}
\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}
\documentclass{article}
\usepackage{minted}
\开始{document}
\开始{minted}{html}
你好
你好
\结束{minted}
\结束{document}
生成以下图像:


默认情况下,这会影响颜色吗?我在测试使用中没有看到彩色输出,我不确定这是我的错误,还是不是功能。我在这里找到了答案:。您可以简单地使用lstset命令为不同的属性设置各种样式。该链接仅显示了使用“listings”包突出显示Python代码语法的特定设置……这实际上是一项相当不错的工作。必须安装Pygments确实带来了一些挑战,但我相信大多数人都会愿意这样做。@Vincent:不幸的是,在Windows上安装Pygments目前要复杂得多(用户必须调整
路径
变量并创建cmd脚本)。我希望说服Pygments的维护人员使用
.exe
包装器发布
pygmentize
,以简化这一步。在尝试了列表和minted/Pygments之后,我认为minted更好(更灵活)。然而,它需要跨越许多障碍,升级到MiKTeX 2.8,安装Python,安装其他组件等等。Minted文档很差,不支持打断长行。但最终我用Eclipse颜色呈现了Java/XML@soundasleepful:制作的文档不断更新。;-)事实上,我发现它相当广泛(当然我有偏见),但我很乐意解决任何投诉。就目前情况而言,“需求”部分无疑是糟糕透顶的。
minted
已经安装并在ShareLatex和背面工作。省去安装Pygments的麻烦;)虽然我欣赏清单背后的宏观理论,但我也同意pygments有其优势:更好的高亮显示、更容易的定制、一些混合语法的能力,以及输出到Latex以外的格式(如HTML)的能力。在
beamer
类型的文档中,这显然是唯一的功能选项。无论是
minted
还是
listings
都不能用
beamer
正确编译。是的,我用
listings
beamer
使用过
listings
,但是你必须指定包含列表的帧是
[脆弱的]
。我对
lstlistings
不满意。它根本不会突出显示XML代码,并且在使用外来Unicode字符时会出错。JavaScript似乎也不受支持。LGrind能处理这样的事情吗?