本文へ移動

Scissor LaTeX での listings

Scissor LaTeX では listings パッケージは一部のみ動作します。lstlisting はコードを入力どおりに保ち、環境に language= を指定すると色付けします。\lstinline も動作します。\lstset、行番号、枠、キャプション、ラベルは無視され、\lstinputlisting はスキップされます。

パッケージの役割

listings はソースコードを組版します。lstlisting 環境は改行とスペースを保ち、language=Python(または C、Java、SQL など)を指定するとキーワード、コメント、文字列を別々のスタイルで組みます。オプションで行番号、枠、キャプション、色を追加でき、リストごとにも、\lstset で文書全体にも設定できます。\lstinline はインライン版で、\lstinputlisting はファイルからコードを読み込みます。

ここで動作するもの

機能Scissor LaTeX では備考
\begin{lstlisting} ... \end{lstlisting}動作する等幅で、入力どおり。
環境に付けた [language=Python]動作する固定の配色でシンタックスハイライト。
[language={[Sharp]C}] などの方言動作する括弧内の方言も名前と一緒に読み取られます。
\lstinline|code|, \lstinline{code}動作する等幅で、色は付きません。
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor無視されるメッセージなしで無視されます。
caption=, label=無視されるキャプションは出力されず、ラベルへの \ref は「??」になります。
\lstset{...}, \lstdefinestyle, style=無視されるそこで設定した language= も含めて無視されます。
\lstinputlisting{file}非対応メッセージを出してスキップされます。
\lstlistoflistings, \lstnewenvironment非対応メッセージを出してスキップされます。

言語名は大文字と小文字を区別しません。色付けは Python、C、C++、C#、Java、JavaScript、Rust、Go、R、MATLAB、SQL、Bash、HTML、TeX などの一般的な言語で使えます。Fortran のように認識されない名前の場合、メッセージなしで色のない等幅のコードになります。

例

各リストに言語を指定します。

language=Python を指定した lstlisting

LaTeXプリアンブル: \usepackage{listings}エディタで開く (新しいタブで開きます)
\begin{lstlisting}[language=Python]
def mean(values):
    # average of a list of numbers
    return sum(values) / len(values)

print(mean([40, 44, 48]))
\end{lstlisting}
Scissor LaTeX による組版: language=Python を指定した lstlisting

\lstset で設定した言語は使われないため、最初のリストには色が付きません。numbers や frame などのレイアウトのオプションも無視されます。

\lstset は無視される

\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}

\lstinline によるインラインのコードは、\verb と同じく任意の区切り文字を使えます。

文中の \lstinline

LaTeXプリアンブル: \usepackage{listings}エディタで開く (新しいタブで開きます)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Scissor LaTeX による組版: 文中の \lstinline

figure の中のキャプション付きリスト

LaTeXプリアンブル: \usepackage{listings}エディタで開く (新しいタブで開きます)
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.
Scissor LaTeX による組版: figure の中のキャプション付きリスト

互換性

  • TeX のインストール環境からここへ: すべての lstlisting のコードが表示されます。色を付けるには language= を \lstset から各リストに移し、\lstinputlisting のファイルのコードは文書に貼り付けてください。
  • ここから TeX のインストール環境へ: 文書はそのまま変更なしでコンパイルでき、指定したオプションが適用されます。

完全なマニュアルは CTAN にあります:ctan.org/pkg/listings。LaTeX のコードリストと minted もご覧ください。

よくある質問

リストに色が付かないのはなぜですか?

おそらく言語を \lstset で設定しているためです。ここでは無視されます。\begin{lstlisting} の後に [language=Python](またはお使いの言語)と書いてください。

行番号を表示できますか?

まだできません。numbers=left は受け入れられますが無視されます。

このページの例はすべて、サイトのビルド時に Scissor LaTeX で組版されています。 最終更新:2026-11-07