web-dev-qa-db-ja.com

さまざまな言語のコードの構文強調表示を行うLaTeXパッケージ

コードの構文を強調表示するLaTeXパッケージを探しています。たとえば、今は逐語ブロックを使用してコードを記述しています。

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

そして、これは私のドキュメントにコードを表示するのにうまく機能します。しかし、出力ドキュメントでIDEがする方法でHTMLマークアップを強調したいとしますか? 助けることができるパッケージはありますか?

Java、C#、HTML、CSSなどのさまざまな言語で同じことをしたいと思います。

158

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}
153
ChrisN

同様の質問 を尋ねた後、Pygmentsを使用する別のパッケージを作成し、texmentsよりも多くのオプションを提供しています。 minted と呼ばれ、非常に安定しており、使用可能です。

それを誇示するために、ここにミントで強調されたコードがあります:

Example code

136
Konrad Rudolph

Pygments をお勧めします。任意の言語のコードを受け入れ、LaTeXコードを強調した構文を出力します。 fancyvrb および color パッケージを使用して出力を生成します。個人的にはリストパッケージよりも好みです。 fancyvrb のほうがきれいな結果が得られると思います。

21
reprogrammer

LGrind これを行います。これは成熟したLaTeXパッケージで、adamがカウボーイだった頃から存在しており、多くのプログラミング言語をサポートしています。

パッケージのリスト の代わりに、開発者のKonrad Rudolphから言及されているように minted package を使用します。その理由は次のとおりです。

パッケージのリスト

リストパッケージは、デフォルトでは色をサポートしていません。カラーを使用するには、カラーパッケージを含め、matlabコード here で説明した\ lstsetコマンドを使用して、自分でカラールールを定義する必要があります。

また、リストパッケージは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

ミントパッケージ

造られたパッケージは、色、ユニコードをサポートし、素晴らしく見えます。ただし、それを使用するには、python 2.6および pygments が必要です。 Ubuntuでは、ターミナルでpythonバージョンを確認できます。

python --version

そして、あなたはでpygmentsをインストールすることができます

Sudo apt-get install python-pygments

次に、mintdは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}

次の画像が生成されます。

enter image description here

9
Adam

私は主に論文でリストリストを使用しますが、色付きの出力(スライド用)では代わりにpygmentsを使用します。

4
Paul Biggar