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
\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}\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
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.figure の中のキャプション付きリスト
\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.互換性
- 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